[英]Having same property name in abstract class and its child class scenario
我有一個Abstract
類:
public abstract class ClassParent{
protected Integer id;
protected String message;
}
及其子類:
public class ClassChild extends ClassParent{
private Integer id;
private String message;
}
在這種情況下會發生什么? 它會繼承其基類屬性還是會在運行時出錯? 這些屬性的getter和setter應該在哪里?
子類屬性隱藏父類屬性。 這稱為陰影,在Java中是允許的。 最好避免它。 您可以使用以下代碼示例進行驗證
public class ClassChild extends ClassParent {
private Integer id;
private String message;
ClassChild(Integer id, String message) {
this.id = id;
this.message = message;
}
@Override
public String toString() {
return "ClassChild{" +
"id=" + id +
", message='" + message + '\'' +
'}';
}
public static void main(String[] args) {
ClassChild cs = new ClassChild(1, "Test");
System.out.println(cs);
System.out.println(cs.message);
System.out.println(cs.id);
System.out.println(((ClassParent)cs).id);
System.out.println(((ClassParent)cs).message);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.