Java面向对象(四):继承

继承

继承(extends)的概念:

  • 继承就是可以将一个类通过另一个类来构建,原来的类就是父类,新的类就是子类。
  • Java中只支持单根继承,即每个类当中只能有一个直接父类。不允许多重继承。

特点:

  • 子类会自动拥有父类的所有非private修饰的属性和方法。
  • extends关键字:继承关系,表示一个类继承自另一个类,extends的左边为子类,右边为父类,父类也称为:超类、基类。子类继承父类,自动拥有父类的所有成员(成员变量和方法),不代表能够访问父类的所有内容,父类private的属性和方法是不能访问的。

好处:

  • 继承的出现提高了代码的复用性,提高开发效率。
  • 继承的出现让类与类之间产生了关系,衍生出了多态。

注意:

  • 静态方法可以被继承(严格来说叫隐藏),但是不能被重写,因此静态方法不能存在多态。
  • 整个继承体系,越向上越抽象,越向下越具体。
  • 父类的构造方法是不可以被继承的。

一、Super关键字

意义:在java类中使用super来引用父类的成分。

  • super可用于访问父类中定义的属性。
  • super可用于调用父类中定义的成员方法。
  • super可用于在子类构造方法中调用父类的构造方法。
  • super的追溯不仅限于直接父类。

用法:

  • 1.使用super可以调用父类的构造方法(对super的调用必须是构造方法中的第一个语句)
  • 2.使用super可以明确指定调用父类的成员(方法和属性)。

分析:

  • 在JAVA类中使用super来引用父类的成分,用this来引用当前对象,如果一个类从另一个类继承,我们new这个子类的实例对象的时候,这个子类对象里面会有一个父类对象。
  • 子类构造器会自动调用父类的默认构造器super();想显示调用父类某个构造器,可以通过super关键字来调用。super(200);

注意

  • this()和super()不能同时在同一个方法中使用,因为要求都要在第一行。
  • 要是在子类用没有指定调用父类的那个构造器,此时子类调用的是父类的默认构造器,如果父类中没有默认无参构造方法(父类中只写了带参数的构造方法,此时默认的构造方法就丢失)时,子类就会报错,编译不通过。

二、方法的重写(覆盖)

overload 重载
方法的覆盖(重写):overWrite override

面试题
重载和重写是什么?两者的区别?

  • 重载是在同一个类中相同方法名、不同参数列表的方法,在方法的重载,重写是在父子关系中产生的,子类继承了父类,重新编写了父类的方法,并且方法名、参数列表、返回值都必须一样。子类的修饰符需要和父类一样或更宽阔。

为什么要继承:主要就是为了代码重用。如果方法通过继承权限越来越小,就违背了代码的重用了。
在这里插入图片描述
在这里插入图片描述

三、Final关键字

  • Final修饰类,被final修饰的类不能有子类。
  • Final修饰方法,被final修饰的方法不能被重写。
  • Final修饰变量,被final修饰的变量称之为常量。如果声明时没有赋值,可以在构造方法中进行初始化。在其他地方都不可以再进行赋值。

四、结束语

继续学习…

希望多多交流,多多关注,共同成就梦想

猜你喜欢

转载自blog.csdn.net/zhangzhanbin/article/details/111654256