首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有办法在Java中用_not_调用超类构造函数?

有没有办法在Java中用_not_调用超类构造函数?
EN

Stack Overflow用户
提问于 2010-06-03 23:58:07
回答 8查看 19.8K关注 0票数 29

如果我有一个类:

代码语言:javascript
复制
class A {
   public A() { }
}

还有另一个

代码语言:javascript
复制
class B extends A {
   public B() { }
}

有没有办法让B.B()不调用A.A()

EN

回答 8

Stack Overflow用户

发布于 2019-01-09 13:43:50

您可以调用您选择的超类构造函数。这可以通过显式调用超类构造函数来实现:

代码语言:javascript
复制
super(para_1, para_2,........);
代码语言:javascript
复制
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();

    }
}
代码语言:javascript
复制
Output will be:
This is BaseA a
This is A
票数 1
EN

Stack Overflow用户

发布于 2010-06-04 00:01:22

不,如果你可以,你的派生对象不会真的是它现在派生的对象,对吧?这将违反is-a原则。所以如果你真的需要它,那么多态性不是你想要的。

票数 0
EN

Stack Overflow用户

发布于 2010-06-04 00:02:06

每个超类都需要构造,除了调用构造函数之外,别无他法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2967662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档