继承的概念:
继承是面向对象三大特征之一,子类可以直接使用父类中非私有的成员。
父类也称之为:基类,超类。
子类也称之为:派生类。
实现继承的格式:
继承通过extends关键字实
格式:class 子类 extends 父类 { }
举例:class Dog extends Animal { }
继承带来的好处
继承可以让类与类之间产生关系,子父类关系,产生子父类后,子类则可以使用父类中非私有的成员。
继承关系中的构造方法执行顺序
JVM对于有继承关系的类的构造方法先从当前类开始,根据继承关系,追溯的最开始的祖先类(最高一级);然后再沿着继承关系向下,逐个执行构造方法。
关于super()
前面说的this()方法调用的是本类的构造方法,
这里的super()方法同样是调用构造方法,这次是调用父类的构造方法。
使用条件
1、只能出现在构造方法中;
2、如果有super(),那它必须是构造方法中的第一条语句。
方法的覆盖
1、方法的覆盖只能存在于有继承关系的类之间;
2、子类方法名称,参数个数和类型,必须同被覆盖的父类方法一致;
3、第2条成立,子类方法返回值类型必须与父类方法返回值一致;
4、第2条成立,子类方法的修饰符不能“低于”被覆盖的父类方法;
5、违反第2条,其实质是方法的重载,而非覆盖。
关于instanceof
instanceof是运算符,也是Java中额的关键字。直译的意思为“实实例否”,作用为判断某一个对象是否是某一个类的对象。
继承中的强制类型转换
Anamal a = new Dog();
调用成员变量:
编译看左边(父类中要有这个变量),运行看左边(使用的就是父类这个变量)
调用成员方法:
编译看左边(父类中要有这个方法),运行看右边(执行子类的代码逻辑)
一切类共同的基类——Object
所有的类都继承于Object类,所以,所有的类都可以访问Object类的非私有成员(成员变量和成员方法)