如何在抽象类中使用getter和setter

埃里克

我有一个抽象课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
}

我的问题如下:

我有一个classextends这个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通过构造函数传递的变量的变量?就像当我将instantiateclass作为一样object,我如何能够从中“获取”变量?
例如:(假设String1 -String5strings某种形式的)

public class Random {
private Customer customer = new Customer(String1, String2, String3, String4, String5);

}

之后,我将如何在类中调用该对象以返回string(任何单个变量的)。就像我abstract class不是,abstract而是class我曾经使用过的maininstantiate一样object,我将得到这样的变量:String name = customer.getName();


TL; DR:

只是不确定如何variablesobject 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

抽象类的getter和setter用法

如何在Angular 8的抽象类和抽象类的实现中使用@Component装饰器?

如何在普通类中使用抽象类的子类

如何在打字稿中使用抽象类

如何在 Python 的抽象类实现中使用 self?

如何在getter和setter中使用Enums?

如何在JavaScript中使用setter和getter,遇到错误

如何在 Ruby 中使用 getter 和 setter?

如何在 Kotlin 中使用 Getter 和 Setter?

用getter / setter实现嵌套的抽象类

设计中使用抽象类和接口的问题

如何在扩展React组件的抽象类中使用泛型?

如何在打字稿中使用带有模板的抽象类并调用它

如何在抽象类和接口之间进行选择

如何在dart中使用抽象类执行继承?错误:超类SpanishData没有零参数构造函数

在子类中使用父类的 getter 和 setter

在Java中使用抽象类

在父抽象类中使用@Scheduler

如何在数组的自定义类中使用getter和setter以及如何在json解析期间处理由于null导致的崩溃

接口内和抽象类内的Getter

使用接口和抽象类

如何在三个类之间使用setter和getter传递值

如何在Angular 2中使用getter和setter实现BehaviorSubject

如何在Android中使用setter和getter存储全局变量?

如何在不使用reset和new的情况下使用纯抽象类的共享指针?

在抽象类的构造函数中使用抽象init()函数

如何使用PyCharm继承抽象类

如何使用Espresso测试抽象类?

Java约定:在类中使用getter / setter?