如果我有一个类:
class A {
public A() { }
}
还有另一个
class B extends A {
public B() { }
}
有没有办法让B.B()
不调用A.A()
发布于 2019-01-09 13:43:50
您可以调用您选择的超类构造函数。这可以通过显式调用超类构造函数来实现:
super(para_1, para_2,........);
class BaseA {
BaseA(){
System.out.println("This is BaseA");
}
BaseA(int a){
System.out.println("This is BaseA a");
}
}
class A extends BaseA {
A(){
super(5);
System.out.println("This is A");
}
public static void main(String[] args) {
A obj=new A();
}
}
Output will be:
This is BaseA a
This is A
发布于 2010-06-04 00:01:22
不,如果你可以,你的派生对象不会真的是它现在派生的对象,对吧?这将违反is-a原则。所以如果你真的需要它,那么多态性不是你想要的。
发布于 2010-06-04 00:02:06
每个超类都需要构造,除了调用构造函数之外,别无他法。
https://stackoverflow.com/questions/2967662
复制相似问题