根據筆者的觀察,現在大部分計算機or軟件學院or信息工程大類or其他理工科專業(yè)的學生入門用的都是C艸這樣的語言栅隐,而一些偏文的專業(yè)則是用的python送矩,python作為一門輕量級的語言確實比C要更加的友善登颓。但是學了C語言之后再看python會覺得這一門語言非常的不嚴謹名段,變量隨便用,單雙引號也很隨意发框,不過這不影響python再某些方面(Data Analysis)能夠發(fā)揮其巨大的作用躺彬。
不知不覺偏題了
C語言是面向過程的語言,C艸梅惯,Java和python都是面向對象的語言宪拥,說到Java里的面向對象,其中比較基礎也比較關鍵的就是繼承和多態(tài)了铣减。
寫于19年三月份她君,沒想到在考試前一天才發(fā)布
繼承
在對象的繼承之中,子類可以獲得父類所有的實例變量和方法葫哗,另一方面缔刹,子類還可以自己給自己添加新的方法或者實例變量,也可以覆蓋出現在父類之中的方法劣针。
繼承有許多的好處校镐,比如說它可以避免程序中出現重復的代碼,如果許多子類都要調用相同的方法做同樣的事情捺典,那么可以在父類中就實現這個方法鸟廓,子類直接調用就行了。
同樣的,有的子類具有特殊的行為肝箱,所以應該擁有特殊的方法哄褒,這時候就需要新寫一個方法去覆蓋父類的方法了稀蟋。
在面向對象編程的過程中煌张,尋找共同的行為并抽象出來變成共同的方法是十分重要的。
對于一個新創(chuàng)建的對象退客,它會調用層次樹上比它高階的類中與它最近的那個類的方法(如果自己沒有覆蓋的話)骏融。
判斷兩個類之間的繼承關系是十分簡單的,我們注意到子類可以自己寫出父類沒有的方法萌狂,所以我們知道子類可以做出任何父類能做的事档玻,并且能做的更多。如果你想要在調用父類方法的同時在加上自己新寫進去的方法茫藏,可以使用super.method
public void method(){
super.method();//調用父類的super
......//自己新添加的內容
}
父與子的關系也體現在父類可以決定哪些能被子類繼承误趴,哪些不可以,這就要討論存取權限了务傲。在Java中有以下幾種存取權限
- private :Java語言中對訪問權限限制的最窄的修飾符凉当,一般稱之為“私有的”。被其修飾的屬性以及方法只能被該類的對象 訪問售葡,其子類不能訪問看杭,更不能允許跨包訪問。
- default:即不加任何訪問修飾符挟伙,通常稱為“默認訪問權限“或者“包訪問權限”楼雹。該模式下,只允許在同一個包中進行訪問尖阔。
- protected:介于public 和 private 之間的一種訪問修飾符贮缅,一般稱之為“保護訪問權限”。被其修飾的屬性以及方法只能被類本身的方法及子類訪問介却,即使子類在不同的包中也可以訪問携悯。
- public:Java語言中訪問限制最寬的修飾符,一般稱之為“公共的”筷笨。被其修飾的類憔鬼、屬性以及方法不僅可以跨類訪問,而且允許跨包訪問胃夏。
修飾符 | 同一個類 | 同一個包 | 不同包的子類 | 不同包的非子類 |
---|---|---|---|---|
private | √ | |||
default | √ | √ | ||
protected | √ | √ | √ | |
public | √ | √ | √ | √ |