我有一个抽象课Customer
。这是一个非常简单的类,仅设置5个string
变量以及5个static int
变量。更好地表明我的意思是:
作为免责声明,我使代码尽可能简单,我在抽象类中涉及了与问题无关的更多逻辑。
public abstract class Customer {
private String Name, Address, Phone, Email, Company;
public static final int NAME = 0, ADDRESS = 1, PHONE = 2, EMAIL = 3, COMPANY = 4;
public Customer(String Name, String Address, String Phone, String Email, String Company) {
setValues(Name, Address, Phone, Email, Company);
}
private void setValues(String Name, String Address, String Phone, String Email, String Company) {
setName(Name);
setAddress(Address);
setPhone(Phone);
setEmail(Email);
setCompany(Company);
}
//declare public getters and setters methods below
}
我的问题如下:
我有一个class
是extends
这个abstract class
所谓的Customer
(不同的包)。如果我成立了constructor
这个class
如此:
public class Customer extends Main.Customer {
private String Name, Address, Phone, Email, Company;
public Customer(String Name, String Address, String Phone, String Email, String Company) {
super(Name, Address, Phone, Email, Company);
}
}
这是否设置了我String
通过构造函数传递的变量的变量?就像当我将instantiate
其class
作为时一样object
,我如何能够从中“获取”变量?
例如:(假设String1 -String5
是strings
某种形式的)
public class Random {
private Customer customer = new Customer(String1, String2, String3, String4, String5);
}
之后,我将如何在类中调用该对象以返回string
(任何单个变量的)。就像我abstract class
不是,abstract
而是class
我曾经使用过的maininstantiate
一样object
,我将得到这样的变量:String name = customer.getName();
只是不确定如何variables
从object
extending
一个abstract class
。
从子类中删除变量,这样它们就不会在父类中隐藏具有相同名称的变量。
//sub class
public class Customer extends Main.Customer {
//DROP THESE private String Name, Address, Phone, Email, Company;
public Customer(String Name, String Address, String Phone, String Email, String Company) {
super(Name, Address, Phone, Email, Company);
}
}
并将getter添加到您的父类中:
//parent class
public abstract class Customer {
private String Name, Address, Phone, Email, Company;
public static final int NAME = 0, ADDRESS = 1, PHONE = 2, EMAIL = 3, COMPANY = 4;
public Customer(String Name, String Address, String Phone, String Email, String Company) {
setValues(Name, Address, Phone, Email, Company);
}
private void setValues(String Name, String Address, String Phone, String Email, String Company) {
setName(Name);
setAddress(Address);
setPhone(Phone);
setEmail(Email);
setCompany(Company);
}
public String getName() {
return Name;
}
public String getAddress() {
return Address;
}
//etc....
}
另外,我真的建议为您的父类和子类使用不同的名称,以免造成混淆。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句