java,中的子类继承父类,子类如何调用父类的构造函数?举一个简单的例子加注释说明

作者&投稿:滑省 (若有异议请与网页底部的电邮联系)
在java中,实现继承时,为什么在子类的构造函数中,要使用super()调用父类构造函数?~

因为你重写了父类的构造方法
Point(int a, int b) {
setPoint(a, b);
}

JAVA规定,构造子类前必须完成父类的构造,所以你必须写Point(int a, int b) {
setPoint(a, b);
}

如果父类有默认无参构造方法,你就可以不用写了
也就是有
public Point(){
}

student第一个构造函数Student(String name, String school)不是调用了另一个3个参数的构造函数么,那个函数里有调用父类构造函数,所以没问题,构造顺序是这样的:
Student(name, school) Student(name, school, "beijing") Person(n, l) this.school = school如果把第一个构造函数中的 this(name, school, "beijing") 注释掉,就会看到编译错误了。
父类构造函数是一定要调用的,这个概念不用怀疑。只是调用同级其他构造函数优先于父类构造函数。

子类无条件调用父类的无参构造函数,实例:

父类:

package com.test;


public class TestFatherClass {

private String name="abc";

TestFatherClass(){

System.out.println("1、这是父类的无参构造函数");

}

TestFatherClass(String a){

System.out.println("2、这是父类的有参构造函数");

}

}


子类:

package com.test;


public class TestChildClass extends TestFatherClass{

TestChildClass(){

System.out.println("3、这是子类的无参构造函数");

}

TestChildClass(String str){

System.out.println("4、这是子类的有参构造函数");

}

public static void main(String[] args) {

System.out.println("实例化对象时:(无参)");

TestChildClass test = new TestChildClass();

System.out.println("实例化对象时:(有参)");

TestChildClass test2 = new TestChildClass("adad");

}

}


输出结果:



只能在子类的构造函数中的第一行调用父类的构造函数,用super(参数).

class A{
    private int a;
    public A(int a){
        this.a=a;
    }
}
class B extends A{
    private int b;
    public B(int a, int b){
        super(a);
        this.b=b;
    }
}


在构造函数中使用 super()

public class SuperA{
public SuperA(){
//....
}
}

public class MyClass extends SuperA {
public MyClass (){
super(); // 只能在构造函数的可执行代码的第一行
// ...
}
}

public class Father{

public Father(){};

}

public class Son extends Father{
public Son(){
supter(); //supter 代表 Father father = new Father()中father对象,换句话说就是直接 父类对象的默认引用

}

}

默认情况下父类需要有一个无参构造 子类的构造方法不写super(XXX)的情况下 默认调用父类无参构造


学习JAVA最重要的是什么?
是坚持,以及找到好的Java教程:就从基础开始说起 Javase Java基础所包含的,Java零基础必备安装包、JavaSE301集、Java教程零基础2019、Java教程零基础2019(ava基础语法、面向对象、异常、数组、常用类、集合、IO流、线程、反射机等等)、XML、Tomcat服务器开发;其中Java零基础2019这视频教程系列可以去B站...

怎样把分页程序做到如此效果?
* 分页数据初始方法,由子类调用 * @param start 本页数据在数据库中的起始位置 * @param avaCount 本页包含的数据条数 * @param totalSize 数据库中总记录条数 * @param pageSize 本页容量 * @param data 本页包含的数据 *\/ protected void init(int start, int avaCount, int totalSize, int...

比较好的Java学习课程有哪些?
接下来Java的进阶课程中,要用到的便是数据库(MySQL)和JDBC。在之后,要学习到的是JavaWeb开发技能。学完可以具有开发个人网站和企业网站的知识技能。最后,接下来便是Java课程最重要的部分把学到的Java技术知识应用到实战项目了,一般实战项目会占整个课程的少半时间,从浅入深,会接触到大小型企业内...

什么是Java?
在一个面向对象的系统中,类(class)是数据和操作数据的方法的集合。数据和方法一起描述对象(object)的状态和行为。每一对象是其状态和行为的封装。类是按一定体系和层次安排的,使得子类可以从超类继承行为。在这个类层次体系中有一个根类,它是具有一般行为的类。Java程序是用类来组织的。Java还...

JAVA接口如何提高软件可维护性?最好写出Java接口的作用,和接口如何提 ...
接口是可插入性的保证。在一个等级结构中的任何一个类都可以实现一个接口,这个接口会影响到此类的所有子类,但不会影响到此类的任何超类。此类将不得不实现这个接口所规定的方法,而其子类可以从此类自动继承这些方法,当然也可以选择置换掉所有的这些方法,或者其中的某一些方法,这时候,这些子类具有了...

Java语言有什么特点?
java 是面向对象,跨平台,简单易用,解释性,安全性较好,性能优异的高级语言,一次编译可以到处运行,不少银行类的网站是用Java开发的。祝好!

在JSP中如何实现分页技术啊?
private int avaCount,totalSize; private Object data; private int currentPageno; private int totalPageCount; \/** * 默认构造方法,只构造空页 *\/ protected Page(){ this.init(0,0,0,DEFAULT_PAGE_SIZE,new Object()); } \/** * 分页数据初始方法,由子类调用 * @param start 本页数据在数据库中的...

同心县13779056021: 关于java中子类继承父类的构造方法 -
彩仲逍遥: java继承中对构造函数是不继承的,只是调用(隐式或显式). 举例说明:public class FatherClass { public FatherClass() {System.out.println(100);}public FatherClass(int age) {System.out.println(age);} }public class SonClass extends ...

同心县13779056021: java中子类继承父类时获得父类成员继承规则是什么 -
彩仲逍遥: 权限public > 包(package,默认,也就是什么权限修饰符都不加) > proteced > private 子类继承了父类的所有成员(这样说实际是不对的),但只能访问父类的非private成员.你可以认为子类持有一个名为supper的父类实例. 当父类和子类方...

同心县13779056021: java中子类能不能继承父类的私有成员 -
彩仲逍遥: 最近学习继承,从书中看到子类继承父类,子类拥有父类所有的属性和方法,于是使用程序去验证,发现父类的私有属性和私有方法,子类是不能访问的,当然一些父类的私有属性可能可以通过相应的方法访问到,但是私有的方法似乎不能简单...

同心县13779056021: java 继承中的 子类继承父类的状态是指的什么? -
彩仲逍遥: 子类继承父类就是把父类的所有变量和方法全部放子类中.

同心县13779056021: 在Java中子类能继承父类那些成员及那些成员函数? -
彩仲逍遥: 子类能继承全部的父类所有属性,但对父类的private属性没有访问权限.方法也是一样.

同心县13779056021: java中子类怎么继承父类,有快捷键么? -
彩仲逍遥: class a{} class b extends a{} 那么b就继承了a,是a 的子类 要说快捷方法的话 就是new -> class 那个对话框 superclass-> Browse ->然后打父类的名字 会自动映射出符合的类名 或者新建完类 然后手打extends 用Alt+/ 映射出所有父类名

同心县13779056021: JAVA中的继承
彩仲逍遥: 子类继承父类的构造方法和父类所有属性和其他方法(被声明为private的除外),子类在被实例化后,会先调用父类的构造方法,然后在调用自己的,但是,在new时,子类会默认调用父类无参的构造方法,如果父类没有显式的定义无参构造方法,编译时就会出错.

同心县13779056021: JAVA中,子类将继承父类的所有属性和方法吗 -
彩仲逍遥: 1 是的,在JAVA中,子类继承父类的所有方法和属性(构造方法要用关键super([参数])调用)另外,当父类的方法或属性被声明为private(私有的)时,子类也是不可以继承的. 2、继承是JAVA中一个重要的特色,便于程序的编写,提高代码的重用性.

同心县13779056021: java中子类在什么情况下可以继承父类的友好成员 -
彩仲逍遥: java中子类继承父类是之后,子类就拥有了父类的所有属性和方法的,不存在你说的问题

同心县13779056021: JAVA中子类能不能继承父类的私有属性和方法? -
彩仲逍遥: JAVA中,子类可以继承父类的私有属性和方法,但一般不能直接访问,但通过反射还是可以访问的:import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.ParameterizedType; import java.lang....

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网