继承机制:是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特 性的基础上进行扩展,增加新功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构, 体现了由简单到复杂的认知过程。
继承主要解决的问题是:共性的抽取,实现代码复用。
在Java中如果要表示类之间的继承关系,需要借助extends关键字,具体如下:
- 修饰符 class 子类 extends 父类 {
- // ...
- }
代码演示如下:
- class Shape {
- public void draw() {
- System.out.println("画图!");
- }
- }
-
- public class Test extends Shape {
- public static void main(String[] args) {
- }
- }
注意:子类会将父类中的成员变量或者成员方法继承到子类中
注意:成员变量访问遵循就近原则,自己有优先自己的,如果没有则向父类中找。
子类和父类中可能会存在相同名称的成员,为了在子类方法中访问父类的同名成员,Java提供了super关键字,该关键字主要作用:在子类方法中访问父类的成员。
代码演示如下:
- class Shape {
- public void draw() {
- System.out.println("画图!");
- }
- }
-
- public class Test extends Shape {
- public void draw() {
- int a = 20;//子类a
- System.out.println(super.a);//super关键字说明访问的是父类的成员
- System.out.println(a);
- }
-
- public static void main(String[] args) {
- Test test = new Test();
- test.draw();
- }
- }
代码运行结果如下:

这样我们就通过super关键字访问了继承自父类Shape的a变量。在子类方法中,如果想要明确访问父类中成员时,借助super关键字即可。
注意:只能在非静态方法中使用。
(注意:Java不支持多继承)
在java中要实现多态,必须要满足如下几个条件,缺一不可:
多态体现:在代码运行时,当传递不同类对象时,会调用对应类中的方法。
多态的优点:
多态的缺陷:

静态绑定:也称为前期绑定(早绑定),即在编译时,根据用户所传递实参类型就确定了具体调用那个方法。典型代表函数重载。
动态绑定:也称为后期绑定(晚绑定),即在编译时,不能确定方法的行为,需要等到程序运行时,才能够确定具体调用那个类的方法。
实际就是创建一个子类对象,将其当成父类对象来使用。语法格式:父类类型 对象名 = new 子类类型()。
Animal animal = new Cat();
animal是父类类型,但可以引用一个子类对象,因为是从小范围向大范围的转换。
向上转型的出现场景:1.直接赋值 2. 方法传参 3. 方法返回
向上转型的优点:让代码实现更简单灵活。
向上转型的缺陷:不能调用到子类特有的方法。
(由于向下转型非常不安全并不推荐,因此不做介绍)
请注意:应避免在构造方法中调用重写的方法。(在构造器中调用方法(如果这个方法被子类重写, 就会触发动态绑定, 但是此时子类对象还没构造完成), 可能会出现一些隐藏的但是又极难发现的问题.)
感谢大家耐心的阅读,如有错误欢迎在评论区指出!!!