黑马程序员技术交流社区

标题: 多层继承中构造函数的调用问题???? [打印本页]

作者: skyname    时间: 2014-3-10 21:14
标题: 多层继承中构造函数的调用问题????
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吧····
作者: 李猛    时间: 2014-3-10 22:11
貌似不可以吧  首先是你那样做没有太大意义, 如果你需要使用里面的成员方法你可以通过子类去调用的
作者: 为你而去    时间: 2014-3-10 23:13
可以在Manager类中的构造函数第一行指定调用Worker的构造函数,这样在Chairman中通过指定调用其父类构造函数,父类构造函数再调用父类构造函数,便能达到想要结果




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2