引言
上文说到Java中如何构建拥有继承关系的类
本篇简单介绍Java中子类如何继承父类的属性、方法。
不能被继承:
private、不在同一包(package)下的protect关键字修饰的属性、方法不能被继承
默认直接继承:
public、在同一包下的protect关键字修饰的属性、方法可以被继承。
所有默认继承的父类方法和父类属性,都可以通过super关键字访问。例如super.setAge(int age);语句调用父类的setAge方法。
子类的构造函数由于函数名不同,不能被默认继承。而子类中,可以通过super(......)调用父类的构造函数。子类的构造方法强制要求第一行调用某个父类的构造方法。
重写(Override)
子类方法定义中参数,方法名与父类相同(返回值可以不同);子类字段和父类名称相同
子类方法前添加注解@Override,可以保证方法一定为重写父类方法,否则编译器会报错。
由于java的对象类型运行new时确定,父类可以new子类的对象,所以重写在运行时确定调用。
重载(Overload)
子类方法中定义的方法名与父类相同,参数不同,返回值不限定。
由于参数不同,编译阶段可以确定重载方法的调用。
强制要求:
java语法强制要求接口中所有方法被类重写
强制要求抽象类中所有方法被类重写
小结: