我是 Stack Overflow 和 Java 的新手,我很难找到一种方法来创建一个利用其他两个类的属性的类。它不需要所有属性,只需选择一个。
我有一个房子、一个城镇和一个 person 类。其中 house 需要来自 town 的城镇名称和来自 person 的 name & 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;
}
人类:
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;
}
还有我的家庭类:
public class House extends Person, Town {
public House(String address , String name, int code , String pName, Long pNumber) {
this.name = Person.pName;
}
}
但是正如您所看到的,我似乎无法让 house class 做我想做的事,并且在搜索在线资源后找不到太多关于此事的帮助。任何指向正确方向的指示都将不胜感激。
最佳答案
House 不能同时扩展 Person 和 Town。 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);
}
}
但是,将 Person
和 Town
实例传递给 House
构造函数可能更有意义,因为可以有多个 Houses在同一个 Town,因此它们共享同一个 Town 实例是有意义的。
关于java - 在继承和利用不同类中的属性方面遇到麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29667662/