Java 继承、super() 关键字使用、super 和 this的区别
Java 继承、super() 关键字使用、super 和 this的区别
1. 继承
继承是子类使用 extends 关键字来继承父类获取相同的属性和方法,可以解决代码的复用性问题
继承的基本思想:父类的构造器进行父类初始化,子类的构造器进行子类的初始化
继承使用细节:
子类在使用父类的方法或属性时,不能直接访问使用 private 私有修饰符修饰的属性或方法,可以通过公共的方法来间接获取
子类的无参构造器会默认调用 super() 方法来调用父类的无参构造器,若父类没有无参构造器,子类需要手动调用父类的其他构造器
子类在使用 super() 或 this() 使用父类或本类的构造器,则需要放到构造器的第一行,并且 super() 和 this() 只能有一个,super() 默认在每个子类的构造器都会生成,不管写没写,系统自动会调用 super() 方法
Object 是所有类的父类,父类的调用不局限直接父类,将一直追溯到 最顶级的 Object 类
子类最多只能继承一个父类,如果想要多继承的话,则需要间接继承,即继承父类,父类继承其父类
继承必须满足 is-a 的逻辑关系,不能滥用继承
子类继承后使用属性的时候层次递增,先寻本类是否有此属性,若没有则向父类依次往后寻找,若期间碰到了私有属性则不能继续访问其他属性,如果需要访问私有属性,只能让此类提供公共方法让子类调用方法来访问