零基础学Java—继承的概述(十九)

Posted 王同学要努力

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了零基础学Java—继承的概述(十九)相关的知识,希望对你有一定的参考价值。

【零基础学Java】—】继承的概述(十九)

一、面向对象的三大特征

  • 面向对象的三大特征:封装性,继承性,多态性
  • 继承是多态的前提,如果没有继承,就没有多态
  • 继承解决的主要问题就是:共性抽取

继承关系的特点:

  • 子类可以拥有父类的内容
  • 子类可以拥有自己专有的内容


二、继承的格式

  • 在继承的关系中,子类就是一个父类,也就是说,子类可以被当做父类看待
  • 例如:父类是员工,子类是讲师,那么讲师就是一个员工
定义父类的格式:(一个普通类的定义)
public class 父类名称
       //....


 定义子类的格式:
 public class 子类名称 extends 父类名称 
 //....
/**
 * @author :CaiCai
 * @date : 2022/4/9 13:38
 */
public class Fu 
    int numFu=10;
    int num=20;
    public  void methodFu()
        System.out.println(num);
    

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

在父类的继承关系中,如果成员变量重名,则创建子类对象时,对象有两种访问方式:

  • 直接通过子类访问成员变量( 等号左边是谁,就优先使用谁,没有则向上找)
  • 间接通过成员方法访问成员变量(该方法属于谁就优先用谁,没有就向上找)
public class Zi extends  Fu
     int   numZi=20;
     int num=200;
     public  void methodZi()
         System.out.println(num);
     


public class Fu 
    int numFu=10;
    int num=20;
    public  void methodFu()
        //因为本类当中
        System.out.println(num);
    

/**
 * @author :CaiCai
 * @date : 2022/4/9 13:39
 */

/*

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

 */
public class Demo01Extends 
    public static void main(String[] args) 
        Fu fu=new Fu();//创建父类对象
        System.out.println(fu.numFu);//10只能使用父类的东西

        Zi zi=new Zi();
        System.out.println(zi.numZi);//20
        System.out.println(zi.numFu);//10

        //等号左边是谁,就优先用谁
        System.out.println(zi.num);//200

        zi.methodZi();//200

        //这个方法是在父类中定义的
        zi.methodFu();//20

    


四、区分子类方法中三种重名

  • 局部变量:直接写成员变量名
  • 本类的成员变量:this.成员变量名
  • 父类的成员变量:super.成员变量名
《新程序员》:云原生和全面数字化实践 50位技术专家共同创作,文字、视频、音频交互阅读

以上是关于零基础学Java—继承的概述(十九)的主要内容,如果未能解决你的问题,请参考以下文章

零基础学Java—List集合(三十九)

零基础学Java—多线程(四十九)

零基础学Java—final关键字与四种用法(二十九)

零基础学Java—static关键字概述(十六)

零基础学Java—字符串的概述和特点(十五)

零基础学Java—Random的基本概述和使用