面向对象三大特性之一。可以解决编程中代码冗余的问题,是实现代码重用的重要手段之一。
只支持单继承,即每个类只能有一个直接父类。
语法:
[访问修饰符] class SubClass extends SuperClass{
//SubClass称为子类,SuperClass称为父类或基类。
}
1、在同一个包中时,子类可继承public,protected,默认修饰符修饰的属性和方法。
不同包时,只能继承public,protected修饰符修饰的属性和方法。
2、可以使用super关键字调用父类中被隐藏的属性和方法。
访问父类构造方法:super(参数列表) //super(); && super(name);
访问父类属性或方法:super.父类属性或方法 //super.name; && super.print();
3、子类在实例化时,会首先执行父类的构造方法,然后才执行子类的构造方法。
a、如果子类没有通过super显式调用父类的有参构造方法,也没有通过this显式的调用自身的其他构造方法,则系统默认调用父类的无参构造方法(如果父类没有无参构造方法,会编译出错),这种情况下是否写super()语句效果是一样的。
b、如果子类构造方法中通过super(参数列表)显式调用父类有参构造方法,那么将执行父类相应构造方法。(此时不调用父类的无参构造。)
c、如果子类通过this显式调用自身的其他构造方法,则在相应的构造方法中应用以上两条规则。
d、如果存在多级继承关系,在创建一个子类对象时,以上规则会多次向更高一级父类应用,一直到执行顶级父类Object类的无参构造方法为止。
4、继承中的方法重写(重写后该方法被隐藏):要求方法名,参数列表,返回类型均相同。