【Java基础】Java子类能继承父类中的哪些内容 您所在的位置:网站首页 java中实现多重继承的方式有哪些 【Java基础】Java子类能继承父类中的哪些内容

【Java基础】Java子类能继承父类中的哪些内容

2024-07-15 02:39| 来源: 网络整理| 查看: 265

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录 一、子类能从父类继承哪些东西二、构造方法的继承三、成员变量的继承四、成员方法的继承

提示:以下是本篇文章正文内容,下面案例可供参考

一、子类能从父类继承哪些东西

--------------私有 ------ 非私有 构造方法:不能-------- 不能 成员变量:能--------------能 成员方法:不能-----------能(在虚方法表中的成员方法都能继承,在成员方法的继承中有解释)

二、构造方法的继承

子类如果继承了父类的构造方法,会导致构造方法的名称与类名不一致,不符合构造方法的规则。

1.定义一个父类,并创建无参构造和带参构造的方法。

public class Person { int age; String name; public Person() { } public Person(int age, String name) { this.age = age; this.name = name; } }

2.创建子类,然后创建一个测试类创建子类的对象

public class Student extends Person{ } public class Test1 { public static void main(String[] args) { Student s1 = new Student(); Student s2 = new Student(18,"123"); } }

3.创建s1的对象时没有报错,创建s2的对象时出现报错 如果一个类中没有构造方法,虚拟机会自动生成一个空参构造,所以在用空参的方式创建对象时没有报错。

三、成员变量的继承

1.分别创建子类,父类和测试类 (父类变量为非私有)

public class Fu { int age; String name; }

(父类变量为私有)

public class Fu { private int age; private String name; }

子类

public class Zi extends Fu{ String work; }

测试类

public class Test { public static void main(String[] args) { Zi zi = new Zi(); zi.name="123"; zi.age=11; zi.work="123"; } }

2.当父类中的变量为私有时在测试类中调用age和name时会报错 在这里插入图片描述

父类中的私有和非私有变量都能继承,在调用时先在右边找对应的变量,再到左边找对应的变量,当变量为非私有时左边的变量不能被找到,会出现报错。

四、成员方法的继承

Java底层会创建一个虚方法表,从最顶级的父类开始,把类中的非private,非static,非final的方法都提取到虚方法表中,子代会继承虚方法表,子代中符合条件的方法也会被提取到虚方法表中,在使用这些方法时只需要创建最底层子类的对象即可。

public class Fu { private void demo1(){ System.out.println("Demo1"); } public void demo2(){ System.out.println("Demo2"); } }

当在测试类中创建子类对象并调用方法时只能调用demo2方法



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有