面向对象的三大特征:继承,封装,多态。
继承:是类和类之间的一种拓展关系,是一种从一般到特殊的关系。
格式:子类名 extends 父类名
泛化:把子类中的共性的抽取到父类中的过程。
特化:子类拓展父类,形成自己特有的东西。
Object类是所有类的间接父类,只是隐藏了不显示而已。
class Peoper{} 等价于 class Peoper extends Object{}
java不支持多继承,一个类只能有一个直接父类。
方法或字段是否被继承:
private修饰的方法和字段都不能被继承;
public修饰的方法和字段可以被继承;
protected修饰的方法和字段可以被继承;
默认修饰的方法字段只能在同一包下的类继承;
构造方法不能被继承!
若一个类所有的构造方法都申明为私有,则此类不可被继承!
子类实例化:
会先将父类的初始化,再初始化自己。
子类构造方法中有一个隐式的super()用于初始化父类,子类初始化时调用。
如果我们显示的调用含参的super(参数列表),则不会再调用无参的super()了。
super();必须在子类构造方法中第一行调用!
super VS this
super和this使用上差不多,super用于调用父类的方法或字段,this用于调用子类的方法或字段。
super用于子类中。
super()和this()不能同时出现在一个构造方法中,因为this必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同 的语句。
this()和super()都指的是对象,所以,均不可以在static环境中使用。