Java_basic_8: 继承

继承

继承的特点

  • 子类,父类
  • 单继承(一个子类只有一个父类)
  • 父类中private 的属性不能被继承

继承的好处

  • 子类拥有父类的所有属性和方法
  • 实现代码的复用

继承的语法

  • class 子类 extends 父类{}
  • 关键字 extends
class Dog extends Animal{
//

}

继承的初始化顺序

  • 初始化superclass 再 初始化subclass
  • 先初始化对象中的属性,再执行构造方法中的初始化
  • e.g. 当我们创建一个子类对象时,这其中的初始化顺序是:
    父类对象初始化——> 父类属性初始化——> 父类构造方法执行——>子类对象初始化——>子类属性初始化——>子类构造方法执行

final 关键字

  • final 关键字可以修饰 类、 方法、属性和变量
  • final 修饰 class, 则该类不能被继承
  • final 修饰 method, 则该方法不能被覆盖(重写)override
  • final 修饰 parameters, 则该类的属性不会进行隐式的初始化(及该属性的初始化必须有值)或者在构造方法中赋值(两种只能选其一)
  • final 修饰变量,则该变量只能被赋值一次,即成为一个常量

super 关键字

  • super 关键字常用在对象内部,可以用来代表父类对象
  • 访问父类的属性 e.g. super.age
  • 访问父类的方法 e.g. super.eat()
  • super 的应用
    -- 子类的构造过程中必须调用父类的构造方法
    -- 如果子类的constructor中没有显式的调用父类的构造方法,则系统默认调用父类的无参构造方法
    -- 如果显示的调用构造方法,则调用语句必须放在子类构造方法的第一行
    -- 如果子类的构造方法中既没有显示的调用父类构造方法,而父类中也没有无参构造方法,则会编译出错

Object 类

  • Object 类是所有类的父类,如果一个类没有用extends明确标识继承于哪个类,则它默认继承Object类
  • Object 类中的方法适用于所有子类

Object类中的几个重要方法

toString() 方法

  • Object 类中的toString方法: 返回对象的哈希code码(对象的地址字符串)
  • 可以重写toString() 方法表示出对象的属性
    code->generate

equals() 方法

  • 返回值是boolean型 true or false, 所以一般可以和if语句配合
  • 比较的是对象的引用地址是否相同(是否指向同一块内存地址)
  • 如果要比较两个对象的值是否相等,则可以重写

你可能感兴趣的:(Java_basic_8: 继承)