A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Worker
{
        Worker()
        {
                System.out.println("调用了Worker的构造函数");
        }
        Worker(String str)
        {
                System.out.println("调用了Worker的带参数的构造函数:"+str);
        }
}
class Manager extends Worker
{
        Manager()
        {
                System.out.println("调用了Manager的没有参数的构造函数");
        }
        Manager(String str)
        {
                System.out.println("调用了Manager的带参数的构造函数:"+str);
        }
}
class Chairman extends Manager
{
        Chairman()
        {
                super("Yes!");
                System.out.println("调用了Chairman的没有参数的构造函数");
        }
}
class ConstructorUse
{
        public static void main(String[] args)
        {
                Chairman cs=new Chairman();
        }
}
java不支持多继承,但却是支持多层继承的,Manager继承了Worker,Chairman继承了Manager,那在Chairman中能不能指定调用Worker的任意构造函数呢??该怎么做?不会是super.super吧····

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

2 个回复

倒序浏览
貌似不可以吧  首先是你那样做没有太大意义, 如果你需要使用里面的成员方法你可以通过子类去调用的

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
可以在Manager类中的构造函数第一行指定调用Worker的构造函数,这样在Chairman中通过指定调用其父类构造函数,父类构造函数再调用父类构造函数,便能达到想要结果

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马