簡體   English   中英

Java初學者:子類和超類-可以刪除值嗎?

[英]Java Beginner: Subclasses and Superclasses -Can you remove values?

我是Java的初學者,正在研究子類和超類。

我知道您可以將超類中沒有的值/屬性/行為添加到子類中,以使其更“特定於任務”。

但是我的問題是,我可以從子類中刪除屬於超類的屬性或行為值嗎?

簡單的答案:

不,你不能,你不應該!

超類具有屬性應該總是有意義的。

看看這個: Liskov替代原理

extend意味着繼承。 對於可以繼承和不能繼承的內容,您沒有精確的選擇。

如果父類決定公開一些公共變量等,則子類不能更改它。

如果父類不想公開某些字段,則可以將它們標記為private

另外:應該打開一個類以擴展它,但關閉它以更改它。

您可能想看看訪問級別修飾符: http : //docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

您不能從子類中刪除超類的變量和方法,但是可以在子類中隱藏字段並覆蓋方法:

class Employee {
    String name = "Employee";
    public void work() {
        System.out.println("Do some work");
    }
}

class Programmer extends Employee {
    String name = "Programmer";
    public void work() {
        System.out.println("Write programs");
    }
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM