关于继承和使用不同类中的属性有困难

MrK*_*ard 3 java inheritance class subclass superclass

我是Stack Overflow和Java的新手,我很难找到一种方法来创建一个利用来自其他两个类的属性的类.它不需要所有属性只选择一个.

我有一个房子,城镇和一个人的班级.房子需要镇上的城镇名称和姓名phNumber.

到目前为止,这是我的代码:

public class Town {
    protected String name;
    private int postCode;

    public Town (String tName , int tCode){
        name = tName;
        postCode = tCode;

    }

    public String getName(String name){
        return name;
    }

    public int getCode(int postCode){
        return postCode;
    }
Run Code Online (Sandbox Code Playgroud)

和班级:

public class Person {
    protected String pName;
    private long pNumber;

    public Person (String name,long number){
        pName = name;
        pNumber = number;
    }

    public String getPersonName(String name){
        return pName;
    }

    public long getNumber(long number){
        return pNumber;
    }

    public void setNumber(long newNumber){  
        pNumber = newNumber;
    }
Run Code Online (Sandbox Code Playgroud)

而我的家庭班:

public class House extends Person, Town {

    public House(String address , String name, int code , String pName,     Long pNumber) {
        this.name = Person.pName;

    }
}
Run Code Online (Sandbox Code Playgroud)

但正如你所看到的,我似乎无法让家庭班级做我想做的事情,在搜索完在线资源后,无法找到很多帮助.任何指向正确方向的人都会非常感激.

Era*_*ran 6

众议院不能延伸人和镇.Java不允许多重继承.

而且无论如何它都没有意义.房子不是人,房子不是城镇.

组合会更有意义 - 一个房子包含一个人(或者可能是多个人)并且位于一个城镇.

例如 :

public class House {

    private Person person;
    private Town town;

    public House(String address , String name, int code , String pName, Long pNumber) 
    {
        this.Town = new Town (name, code);
        this.person = new Person (pName, pNumber);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,它可能会更有意义,传递PersonTown实例的House构造函数,因为可以有多个房屋都在同一个城市,所以它是有道理的,他们共享同一个镇的实例.