在继承的关系中,“子类就是一个父类”,也就是说,子类可以被当父类看待。
例如父类是员工,子类是讲师,那么“讲师就是一个员工”,关系:is-a。
定义子类的格式:
public class 子类名称 extends 父类名称{
//....
}
在子类的继承关系当中,如果成员变量重名,则创建子类对象时,访问有两种方式。
直接通过子类对象访问成员变量,
等号左边是谁,就优先用谁,没有则向上找。
间接通过成员方法访问成员变量,
该方法属于谁,就优先用谁,没有则向上找。
本类中的成员变量:this.成员变量名
父类中的成员变量:super.成员变量名
1 /** 2 * 在子类的继承关系当中,创建子类对象,访问成员方法的规则: 3 * 创建的对象是谁,就优先用谁,如果没有则向上找。 4 * 注意事项: 5 * 无论是成员方法还是成员变量,如果没有都是向上找父类,绝对不会向下找子类。 6 * 7 * 重写(Override) 8 * 概念:在继承关系当中,方法的名称一样,参数列表也一样 9 * 10 * 重写(Override):方法名称一样,参数列表【也一样】。覆盖、复写 11 * 重载(Overload):方法名称一样,参数列表【不一样】 12 * 13 * 方法的覆盖重写特点,创建的是子类对象,则优先用子类方法。 14 * 15 * 方法覆盖重写的注意事项: 16 * 1、必须保证父子类之间的名称相同,参数也相同。 17 * @Override:写在方法前面,用来检测是不是有效的正确覆盖重写。 18 * 2、子类方法的返回值【小于等于】父类方法的返回值范围。 19 * 小扩展提示:java.lang.Object类是所有类的公共最高父类,java.lang.String就是Object的子类。 20 * 3、子类方法的全县必须【大于等于】父类方法的权限修饰符 21 * 小扩展提示:public > protected > (default) > private 22 * 备注:(default)不是关键字,而是什么都不屑,留空 23 * 24 */