【Java基础】Java子类能继承父类中的哪些内容 | 您所在的位置:网站首页 › java中实现多重继承的方式有哪些 › 【Java基础】Java子类能继承父类中的哪些内容 |
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、子类能从父类继承哪些东西二、构造方法的继承三、成员变量的继承四、成员方法的继承提示:以下是本篇文章正文内容,下面案例可供参考 一、子类能从父类继承哪些东西--------------私有 ------ 非私有 构造方法:不能-------- 不能 成员变量:能--------------能 成员方法:不能-----------能(在虚方法表中的成员方法都能继承,在成员方法的继承中有解释) 二、构造方法的继承子类如果继承了父类的构造方法,会导致构造方法的名称与类名不一致,不符合构造方法的规则。 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 实验室设备网 版权所有 |