首页 > 其他分享 >Day20:继承详解

Day20:继承详解

时间:2022-11-23 09:46:40浏览次数:38  
标签:继承 子类 Day20 Students 详解 父类 public 属性

继承的理解

继承:对类进行抽象化;也就是将存在的类构造成新的类;

比如说学生是一个类,老师是一个类,那么我们可以将学生类和老师类收纳进人这个类;那么学生和老师则为子类(派生类)、人为父类(基类);子类继承父类。

语法格式:

public class Students extends Person{
    //用extends关键字表示Students类继承Person类
}

当我们将一个类继承与另外一个时,会发生什么:

  1. 子类会继承父类的所有属性和方法;但是如果父类中属性和方法被私有化后,子类无法访问;
  2. 子类在对象实例化时会先调用父类构造器,再调动自身的构造器
//创建一个人类
public class Person{
    //设置两个属性,一个公用,一个私有化
    String name;
    private double money;
    public Person(){
        System.out.ptintln("Person的无参构造方法启动了")
    }
    public Double getMoney(){
        return Money;
    }
    public void setName(double money){
        this.Money=Money;
    }
}
public class Students extends Person{
    public Students(){
        System.out.ptintln("Students的无参构造方法启动了")
    }
}
public class Application{
    public staitc void main(String[] args){
        Students stu=new Students();//当我们将学生类实例化然后输出
    }
}
//运行结果(学生类实例化后运行)
Person的无参构造方法启动了
Students的无参构造方法启动了
//我们发现在学生类实例化时,其父类的构造器也会被调用
//回到刚才的Application类
public class Application{
    public static void main(String[] args){
        Students stu= new Students();
        stu.name="工地佬";//我们发现Students类中并没有任何属性;却访问到了其name属性;原因是因为Students类继承其父类的属性
        //stu.money;//当我们去调用其money方法时会报错;因为在父类中money属性是被私有化的,所以子类是没有办法继承的;但是父类中留有访问封装属性的方法;子类可以通过方法来访问私有属性
        stu.setMoney(10_0000);
            System.out.ptinln(stu.getMoney());
    }
}
//运行结果
工地佬
10_0000

总结:

  • 父类中的所有属性和方法都能被子类继承,可通过外部程序将子类实例化后调用;
  • 父类的私有属性不能被子类继承,只能通过访问封装属性的方法进行调用;
  • 所有的类都默认继承Object类
  • 子类只能继承一个父类,成为单继承;而父类可以拥有很多子类;

标签:继承,子类,Day20,Students,详解,父类,public,属性
From: https://www.cnblogs.com/CQliuwei/p/16917255.html

相关文章

  • 详解蓝牙模块的分类
        摘要:蓝牙模块,是一种集成蓝牙功能的PCBA板,用于短距离无线通讯,蓝牙模块将芯片和外围硬件电路集成到一个PCB上,开发出所需的内置程序实现蓝牙功能的设备。可以通过......
  • C++语言类的继承与派生介绍和示例
     继承    继承是面向对象程序设计中最重要的一个概念。继承允许我们根据一个类来定义另一个类,达到了代码功能重用效果。    当创建一个类时,如果待创建的类与......
  • C++语言类的详解和示例
     超女选秀的例子我们玩了很久,为了教学的需要,暂时离开美眉们,我将采用实际项目开发的例子。在C语言基础知识中已学习过文件操作,在实际开发中,我会把文件操作封装成一个类,类的......
  • C++语言函数重载详解和示例
     C++函数重载的概念在实际开发中,有时候我们需要实现几个功能类似的函数,只是有些细节不同。例如把变量的值写入文件,变量的类型int、long、double、char,需要通过参数把变量......
  • 132令非终结符B表示布尔表达式,为B设置两个继承属性 true和 false。B.true是一个地址,地
      关键:true和false为继承属性,语义动作必须出现在非终结符的右边   ......
  • Pod控制器详解(HPA)
    HorizontalPodAutoscaler(HPA)前面可以实现通过手工执行`kubectlscale`命令实现Pod扩容或缩容,但是这显然不符合Kubernetes的定位目标--自动化、智能化。Kubernetes期......
  • 关于Spring注解的基础详解(补充上次并不清楚的内容)
    注解,需要在.xml文件里面加这么一句话:<context:component-scanbase-package=""/>(组件)Component注解主要用于接口的实现类里面,代替掉.xml文件里面的这句话:(主要作用:代替......
  • 继承的特点和继承体系的设计
    继承的特点问题:为什么不支持多继承多层继承继承体系小结练习注意事项小结......
  • Day19:属性封装详解
    属性封装详解封装即隐藏一些数据,让外部不能直接访问,而是需要通过一些方法才能设置或者访问。首先我们来看未封装的属性被外部调用的情况publicclassStudents{//创建一......
  • 一文详解:Quick BI、帆软Fine BI等主流BI软件,各有哪些特点
    近几年,随着数据价值被越来越多企业所重视,商业智能工具市场也迎来了全面大爆发。一时间,市面上各种BI工具层出不穷,导致很多企业在选择BI供应商的时候没了方向,不知道从何决策。......