kwrl.net
当前位置:首页 >> 在jAvA中什么情况下子类构造方法一定要用supEr()... >>

在jAvA中什么情况下子类构造方法一定要用supEr()...

一般用super要不就是传参数过去,要不就是调用父类的方法或属性。 比如装饰模式。 Project employe = new Employe(); //程序员 Project managerA = new ManagerA(employe); //项目经理A 将手下的程序员当成参数传过去 public class ManagerA ext...

不是的。如果父类存在带参数的构造函数,而你又没有在父类中添加空的构造函数 ,子类就要显示的调用父类的构造函数。

不是必须 但是自动调用SUPER 什么时候必须调用SUPER 给你个例子 public class Father { public String name; public Father(String name) { this.name = name; } } public class Son extends Father{ public Son(String name) { super(name);//...

是的,即使你不写super(),默认也有这句

因为你重写了父类的构造方法 Point(int a, int b) { setPoint(a, b); } JAVA规定,构造子类前必须完成父类的构造,所以你必须写Point(int a, int b) { setPoint(a, b); } 如果父类有默认无参构造方法,你就可以不用写了 也就是有 public Point(){ }

如果父类中有无参的构造方法,可以不继承,默认继承无参构造方法! 如果父类中都是有参构造方法就需要,super去继承了 Fulei(int a) { this.a = a; } 子类 Zilei(int a) { super(a); } 有问题再追问,good luck!~

dialogInit(); this.dialogInit(); 这个是调用类中的方法(如果在子类中重载了dialogInit()这个方法,就是子类中的,如果没有就是直接调用父类中的方法,也就是等同于super.dialogInit();)

这个要看用法了。 比如:super(); 这表示父类的构造方法,只能在子类的构造方法中使用,并且要放在子类构造方法的第一条。 还有其他的用法,通常用来表示父类的成员(子类可以访问的成员变量或方法,多用于与子类成员同名的情况下)。例如,子类...

对!如果你是用super调用父类的无参构造方法那么你可以不写、因为他会隐藏一个super (),如果是调用有参构造方法那么就一定要写还要带参数,JAVA规定了super()要写在第一行,不写第一行会要报错!楼主可以试一试就知道了

默认是继承 Object 这个类。所以你用super(),调用的是 Object类的构造方法。 你可以用 eclipse 或者netbeans 试试: super. 出来的都是 object 类的方法

网站首页 | 网站地图
All rights reserved Powered by www.kwrl.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com