继承(面向对象的三大特征之一,继承是多态的前提,没有继承,就没有多态)

  继承就是指子类继承父类的行为特征,使得子类具有父类的相同的内容

继承主要解决的问题就是:共性抽取(有些代码存在重复,导致代码量大且臃肿)

特点:

  1.子类可以拥有父类的内“内容”

  2.子类还可以拥有自己专有的内容

java继承 可见性 java继承变量_java继承 可见性

 

 

类的继承格式

  在java中可以通过extends关键字表示继承

java继承 可见性 java继承变量_java_02

继承重名的三种变量

  局部变量:                           直接写成员变量

  本类的成员变量:                this.成员变量名

  父类的成员变量                    super.成员变量

---------------------------------------------------------------------------------------------------

方法的重写(在重写方法前加入override注解)

为什么在继承中需要继承的重写?

  当父类的不满足需求的时候,这个时候就需要定义一个新的子类来重复利用父类的共性内容,并添加新的内容

java继承 可见性 java继承变量_重写_03

 

 

方法重写的原则

1.保证父子类的方法名跟参数列表相同

2.子类方法的返回值必须小于等于父类返回值范围

3.子类方法的权限必须大于等于父类方法的权限

java继承 可见性 java继承变量_方法的重载_04

方法的重载跟方法重写的区别?

  方法重载:overrload(解决了功能相同方法名不同的问题:方法名相同,参数列表不同)

  方法重写:oveerride(解决了父类不满足当前需求,子类扩展父类的问题:方法名跟参数相同,方法体不同)

二者无关系,只是名字相似

java继承 可见性 java继承变量_java_05

 

继承的三个特点:

1.单继承

2.可以多级继承

3.一个父类可以给多个子类继承,一个子类的父类却是唯一的

java继承 可见性 java继承变量_继承_06

继承内存分析

  先加载父类跟子类的字节码class文件到方法区中,然后先在堆中创建父类,再创建子类,并把子类的地址给予在栈中创建的对象名

  (继承中,构造器是先调用父类的构造器,再调用子类的构造器,有同名方法先调用子类方法,如果子类没有,再调用父类)

java继承 可见性 java继承变量_方法的重载_07