java-继承

Posted whc0305

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java-继承相关的知识,希望对你有一定的参考价值。

java——三大特性之继承

一、继承的含义及作用

在写java代码的时候,常常会出现一些相同或者类似的类,里面有着差不多的属性和方法。为了避免代码冗余,于是我们将这些差不多的类进行了一个操作——继承。

技术分享图片

如上图,

哺乳动物 和 卵生动物 继承了 动物类(父类),可以获得父类所有的属性和方法(私有属性和构造方法除外)

猫类 和 人类 在继承了哺乳动物后,不仅获得了父类里的属性和方法,还额外自主的添加了新的属性和方法(子类自己的属性和方法,不关父类的事)

鸟类 和 蛇类 在继承了卵生动物后,可以重写父类的方法(方法名,修饰符,返回值都相同,只有方法体不一样)

当我们实例化卵生动物(子类)时,动物类(父类)先进行实例化,子类实例化时先实例化其父类,然后实例化子类。(想要使用子类,父类必须先被创建)

 

二、super 与 this

由于 子类 不能继承父类中的 构造方法 和私有属性,而我们又想进行使用时。

super. 可以使用到父类的普通方法,想获取父类的私有属性,则使用父类的get方法(注意是super丶不要忘记了小数点)

this. 指向本类的引用,调用本类的方法和属性

super()

  • 调用父类的构造器
  • super只能出现在构造器中,并且只能为第一行
  • 父类有多个构造器时,super()括号中传入的实参,决定了调取父类中的哪个构造器
  • 子类构造器会默认添加super(),调取父类无参的构造器。所以,当父类没有空构造器时,程序将会报错。

this()

  • 调用本类的构造器
  • 只能写在构造器中,并且只能为第一行

注意:this() 和 super() 不能出现在同一个构造器中

三、方法的重写(覆盖)

当 子类 继承 父类后,往往子类的 方法 更加的清晰,所以我们将更改 父类 的方法,将 父类 继承下来的方法 更加具体的实现;

重写父类方法的规则

  • 相同的方法名
  • 相同的参数列表(参数数量、参数类型、参数顺序都要相同)
  • 相同的返回值类型
  • 子类覆盖方法的访问权限要不小于父类中被覆盖方法的访问权限(public > protected > default > private)

在重写方法上,可以使用 @Override 注解来标明是重写方法。当然也可以省略,但为了代码可读性,建议保留。

@Override 可以验证是否是父类的方法。如果不是,将会报错

以上是关于java-继承的主要内容,如果未能解决你的问题,请参考以下文章

Java_继承

java中为啥要使用继承

继承问题java

Java继承概述 以及Java继承案例和继承的好处

java.lang里面的类都有哪些可以被继承?

Java 中 Enum 如何继承?