zoukankan      html  css  js  c++  java
  • java.类的继承

    概述

    继承是多态的前提,如果没有继承就没有多态
    继承主要解决的问题就是:共性抽取
    

    特点

    1、子类可以拥有父类的内容
    2、子类可以拥有自己专有的内容
    


    定义格式

    定义父类的格式:(普通类的定义)
    public class 父类名称{
            //......
    }
    
    定义子类的格式:
    public class 子类名称 extends 父类名称{
        //......
    }
    

    代码演示

    1、创建一个父类

    public class ParentClass {    
        public void method(){        
        System.out.println("我是父类");    
        }
    }
    

    2、创建一个子类继承父类

    public class SubClass extends ParentClass {
    }
    

    3、在主方法中调用子类继承父类的方法

    public class InheritTest {
        public static void main(String[] args) {
            SubClass tt = new SubClass();        
            tt.method();    
        }
    }
    

    ** 4、输出结果**

    我是父类
    

    如何区分子类方法中重名

    如果局部变量、本类的成员变量和父类的成员变量重名那么该如何分开调用呢?
    this关键字
    每个对象都有一个名为this的引用,它指向当前对象本身,调用本类中的属性,也就是类中的成员变量
    super关键字
    与this相似,super可调用父类的成员变量、成员方法、构造方法

    方法覆盖(重写 overrode)

    **方法覆盖的注意事项 **
    1、必须保证父子类之间方法的名称相同,参数列表也相同
    2、@override:写在方法前,可以用来检测是否有效正确复写。非必须项但建议写上

    3、子类方法的返回值必须【小于等于】父类的返回值范围
    例:java.lang.Object类是所有类的最高父类,java.lang.String是Object的子类
    你定义父类的返回值类型可以是Object,子类可以是Object或String都行。但是反过来就不行。

    4、子类方法的权限必须【大于等于】父类方法的权限修饰符
    扩展:public > protected > default(不写) > private

    方法覆盖使用的场景


    super

    super关键字的用法有三种
    1、在子类的成员方法中访问父类的成员变量
    2、在子类的成员方法中访问父类的成员方法
    3、在子类的构造方法中访问父类的构造方法
    

    this

     1、在本类的成员方法中访问本类的成员变量
     2、在本类的成员方法中访问本类的另一个成员方法
     3、在本类的构造方法中访问本类的另一个构造方法
        在无参构造方法中调用有参构造方法
        注意:在无参构造方法内调用的有参构造方法必须是第一个语句,也是唯一一个
  • 相关阅读:
    [转]关于ORA00979 不是 GROUP BY 表达式错误的解释
    【转】mongodb简介及源码编译安装mongo2.0.0服务器
    mysql 缓存(转)
    iostat命令详解(转)
    C++虚函数,纯虚函数,抽象基类,虚基类(转)
    C++虚类的作用(转)
    C++ 纯虚类(转)
    虚函数的应用特性(转)
    2、Linux多线程,线程的分离与结合(转)
    mongodb js shell不能使用退格键的问题(转)
  • 原文地址:https://www.cnblogs.com/youngleesin/p/11689234.html
Copyright © 2011-2022 走看看