日期:2014-05-20  浏览次数:20669 次

子类调用父类构造方法,这么写有问题么?
子类调用父类构造方法,爸爸会“木工”和“修车”,儿子在继承老爸的光荣传统后还会点音乐,我这个例子

Son s = new Son(f.a,f.b,"音乐");

这么调用父类构造方法没问题吧,我总觉得有点别扭,一般大家是这么写的么?

Java code

class Father{
    String a;
    String b;
    
    Father(String a,String b){
        this.a = a;
        this.b = b;
    }
}

class Son extends Father{
    String c;
    
    Son(String a, String b, String c){
        super(a, b);
        this.c = c;
    }
} 

public class TestExtend {
    public static void main(String[] args){
        
        Father f = new Father("木工","修车");
        Son s = new Son(f.a,f.b,"音乐");
        
        System.out.println(f.a + " " + f.b);
        System.out.println(s.a + " " + s.b + " " + s.c);
    }
    
    
}



------解决方案--------------------
对,就是这么写的,而且也必须这么写,不明白楼主有啥别扭的

当然,我是说的子类构造方法里面的super(a, b);

Son s = new Son(f.a,f.b,"音乐");// 这种有啥必要?

Java code

Son s = new Son("木工","修车","音乐");// 还不是一样?

------解决方案--------------------
Java code

  Father f = new Father("木工","修车");
        Son s = new Son(f.a,f.b,"音乐");
        
        System.out.println(f.a + " " + f.b);
        System.out.println(s.a + " " + s.b + " " + s.c);