这里实现的类是正确的?

时间:2014-02-03 10:53:39

标签: java

我有以下两个班级。是否适当实施?

public class A {

     private String name;
     private String age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }



}


public class B extends A {

    public B(A a){
        this.setAge(a.getAge());
        this.setName(a.getName());
    }

    public void doSomeThing(){

        //do something with age and name data
    }

}

谢谢!

2 个答案:

答案 0 :(得分:1)

当然,在某些情况下,您的选择是正常的,但以下解决方案更“经典”:

class A {
    private String name;
    private String age;

    A(String name, String age) {
       this.name = name;
       this.age = age;
    }

    // getters, setters
}

class B extends A {
    private String c;
    public B(String a, String b, String c){
        super(a, b);
        this.c = c;
    }

    public void doSomeThing(){
        //do something with age and name data
    }
    //getters, setters
}

答案 1 :(得分:0)

您不需要B类中的构造函数,因为B类已经具有A类的属性。

public class B extends A {

    public void doSomeThing(){
        //do something with age and name data
        // You can use getAge() and getName() here directly:
        System.out.println(getName());
    }

}