美文网首页
二继承与多态——第一节:继承

二继承与多态——第一节:继承

作者: 杜艳_66c4 | 来源:发表于2022-05-12 21:31 被阅读0次

一、继承的概述

image.png

二、继承的格式

通过 extends 关键字,可以声明一个子类继承另外一个父类,定义格式如下:

class 父类 {
   ... 
   }
   class 子类 extends 父类 { 
   ... 
   } 

继承,父子关系,子有父的特点。

三、继承中成员变量的访问特点

在父子类的继承关系中,如果成员变量重名,则创建子类对象时,访问有两种方式
1、直接通过子类对象访问成员变量
等号左边是谁,就优先使用谁,没有则向上找
2、简介通过成员方法访问成员变量
该方法属于谁,就优先使用谁,没有则向上找


成员变量访问

四、区分子类方法中重名的三种 成员变量

子父类中出现了同名的成员变量时,在子类中需要访问父类中非私有成员变量时,需要使用 super 关键字,至于修饰父类成员变量,类似于之前学过的 this**
使用格式 super.父类成员变量名

子类的成员变量 直接写成员变量
子类的局部变量 this.成员变量名
父类的成员变量 super.成员变量名
父类

package jichengDemo.demo1;

/**
 * created by apple on 2020/6/7
 */
public class Fu {
    int num = 10;  //成员变量
}

子类

package jichengDemo.demo1;

/**
 * created by apple on 2020/6/7
 */
public class zi extends Fu{
    int num = 20;  //成员变量

    public  void method(){
        int num =30;  //局部变量
        System.out.println(num);  //30 局部变量
        System.out.println(this.num);  // 20 本类的成员变量
        System.out.println(super.num);  // 10父类的成员变量
    }

}

调用

package jichengDemo.demo1;

/**
 * created by apple on 2020/6/7
 */
public class ExtendsField {
    public static void main(String[] args) {
        zi zi = new zi();
        zi.method();
    }
}
会返回 30  20  10

五、继承中成员方法的访问特点

image.png

六、继承中方法的覆盖重写

重写:在继承关系中,方法的名称一样,参数列表一样override
重载:方法的名称一样,参数列表不一样 overload

注意事项:
1、必须保证父子类之间方法的名称相同,参数列表也相同
@Overrid,写在方法前面,用来检测是不是有效的重写
这个注解就算不写,只要满足要求,也是正确的覆盖重写
2、子类方法覆盖父类方法时,必须要保证子类方法权限修饰符 >= 父类方法权限修饰符。
public > protected > default > private
3、方法重写时,子类的返回值类型必须要 <= 父类的返回值类型。
4、方法重写时,子类抛出的异常类型要 <= 父类抛出的异常类型。
意义:
子类可以根据需要,定义特定于自己的行为。既沿袭了父类的功能名称,又根据子类的需要重新实现父类方法,从而进行扩展增强。

七、关于继承之后的构造方法

看上节

八、this 和super

九、继承的三个特点

image.png

相关文章

网友评论

      本文标题:二继承与多态——第一节:继承

      本文链接:https://www.haomeiwen.com/subject/hdwfjrtx.html