继承的关键字是extends
继承是Java中类与类之间的一种关系
使用继承的好处就是可以使用父类封装所有子类的公共代码,让子类继承,实现代码复用
发生继承的类称为子类,被继承的类称为父类
一个类只能继承父类,但是一个父类可以有多个子类
如果一个类没有显示的继承父类,则隐式继承Object类
java不支持多继承,只支持单继承,但支持多级继承
任何一个继承体系的顶层是Object类,Object类称呼为祖先类,上帝类
构造方法中的第一行处有一条隐式指令super()调用其父类构造方法。
例如测试类demo中创建一个Byte类的对象,在Byte构造函数中存在隐式的super();先判断是否显示继承父类,然后调用其父类Int的构造方法,其实Int构造方法中也有super()调用了Object构造方法。然后返回输入2,然后是1。这也就是为什么打印的是2 1 的原因了。
this和super的区别
前者指向当前对象,后者指向当前父类对象
this和super的使用语法
1.调用构造方法,只能在构造方法里写在第一行
this();可以使用this()调用本类构造方法
super();可以使用super()调用父类构造方法
下图可以解释
子类可以继承父类的非私有(private修饰)成员
父类的构造方法不存在继承,但可以被指针调用,且子类的无参构造方法中会默认调用父类的无参构造方法
能发生继承关系的类在逻辑上应该有一种"is a"的关系。
狗 is a 动物
猫 is a 动物
刀 is a 武器
枪 is a 武器