日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

在java继承机制中 父类中的私有_Java中子类能继承父类的私有属性吗?

發布時間:2025/3/8 8 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在java继承机制中 父类中的私有_Java中子类能继承父类的私有属性吗? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前段時間去聽老師講課的時候,老師告訴我子類是可以繼承父類所有的屬性和方法的。當時我是極其疑惑的,因為之前學校考試時這個考點我記得很清楚:子類只能繼承父類的非私有屬性和方法。老師給我的解釋是這樣的——先看下面一段代碼

/**

* 定義父類

* @author CBS

*/

public class Father {

private String name;//私有屬性

private char sex;

public void tell(){

System.out.println(name+sex);

}

private void speak(){

System.out.println(name+"is speaking!");

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public char getSex() {

return sex;

}

public void setSex(char sex) {

this.sex = sex;

}

}

/**

* 定義子類,子類中什么都不寫。

* @author CBS

*/

public class Child extends Father {

}

/**

* 定義測試類

* @author CBS

*/

public class Test {

public static void main(String[] args) {

Child c=new Child();

c.tell();//tell方法是可以用的

//c.speak();//報錯,父類的私有方法不可見

}

}

我們可以看到測試類中即使沒有給Child類對象的屬性進行賦值,tell方法依舊是可用的。如果Child類中沒有繼承父類的私有屬性,那么tell方法應該會報錯。由此得出的結論是,子類會繼承父類的所有東西,而修飾符只是影響屬性或者方法對外是否可見。

但是個人比較同意Java官方文檔的解釋:子類不能繼承父類的私有屬性,但是如果子類中公有的方法影響到了父類私有屬性,那么私有屬性是能夠被子類使用的。

Java中修飾符的作用是封裝類中的屬性和方法使其對外不可見,官方文檔的解釋很好的兼顧了Java的繼承和封裝。繼承是為了更好的提高代碼的重用性,封裝則保護了代碼的不可見部分。在編寫代碼的過程中,我們顯然即想提高代碼的重用性,也不希望類中的某些域被隨意修改。那么這樣的繼承機制就很合理了。另外就生活中的例子來說,Java官方文檔的解釋也很契合。比如,我們不可能完全繼承父母的一切(如性格等),但是父母的一些無法繼承的東西卻仍會深刻的影響著我們。

當然以上的這些理由并不充分,只是筆者的個人見解。關于繼承的問題,知乎對此也有討論,下面這個帖子總結的比較全面,證據也很充足,大家可以去看看:

Java 繼承問題 -- 子類是否繼承父類的私有屬性

理解一: 子類會繼承父類的所有屬性和方法,至于能不能直接訪問,那就是訪問權限的問題了. 例如:父類有個private String name; 屬性.子類會繼承下來,但子類訪問不了,因為是privat ...

java中子類會繼承父類的構造方法嗎?

參考: https://blog.csdn.net/wangyl_gain/article/details/49366505

javascript中子類如何繼承父類

參考阮一峰的文章:http://javascript.ruanyifeng.com/oop/inheritance.html#toc4 function Shape() { this.x = 0; t ...

JAVA中子類會不會繼承父類的構造方法

聲明:剛剛接觸java不久,如果理解有錯誤或偏差望各位大佬強勢批判 java中子類能繼承父類的構造方法嗎? 父類代碼: class Father { String name ; //就不set/get ...

轉:Java中子類是否可以繼承父類的static變量和方法而呈現多態特性

總結

以上是生活随笔為你收集整理的在java继承机制中 父类中的私有_Java中子类能继承父类的私有属性吗?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。