java-继承

java——三大特性之继承

1、继承的含义及做用

在写java代码的时候,经常会出现一些相同或者相似的类,里面有着差很少的属性和方法。为了不代码冗余,因而咱们将这些差很少的类进行了一个操做——继承。java

如上图,ide

哺乳动物 和 卵生动物 继承了 动物类(父类),能够得到父类全部的属性和方法(私有属性和构造方法除外)this

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

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

当咱们实例化卵生动物(子类)时,动物类(父类)先进行实例化,子类实例化时先实例化其父类,而后实例化子类。(想要使用子类,父类必须先被建立)继承

 

2、super 与 this

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

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

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

super()引用

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

this()

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

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

3、方法的重写(覆盖)

当 子类 继承 父类后,每每子类的 方法 更加的清晰,因此咱们将更改 父类 的方法,将 父类 继承下来的方法 更加具体的实现;

重写父类方法的规则

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

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

@Override 能够验证是不是父类的方法。若是不是,将会报错

相关文章
相关标签/搜索