Java中继承是单继承,只有一个父类,可以有多个子类。
子类在继承父类的属性和方法的时候可以扩展自己的属性和方法。
继承父类的时候,父类必须有一个无参构造。
子类构造的时候会默认通过super()来调用父类的构造方法。初始化子类的时候,先调用父类的默认构造,再调用子类的构造。
调用父类的属性或方法可以通过super关键字。
在调用子类的方法时会先在子类中寻找那个方法,找到后调用成功,否则再去父类中找想要调用的方法。如果在子类中找到了那个方法,则子类重写了父类的方法。
用final修饰的类不能被继承。
不能被继承的:
1.私有的属性(可以通过set get或super方法使用父类的私有属性)
2.不同包的friendly
3.构造方法不能继承
如下图所示,解释私有属性不可以被继承,以及获取父类私有属性的两种方法:
通过super来获取父类的私有属性:
通过set get方法获取父类的私有属性:
两种方法所得到的结果是:
不能被继承的类:
String StringBuffer Scanner