1、內部類和隱藏方法
偶爾使用的類可以作為內部類,減輕**工作量
不希望在物件例項中被訪問的方法就是隱藏方法,通過在方法名稱前加__字首就可以實現隱藏方法
class student:
def __init__
(self,name,no)
: self.name=name
self.no=no
self.laptop=self.
laptop()
def show
(self)
:print
(self.name,self.no)
#內部方法隱藏
def __show2
(self)
:print
("\n"
) class laptop:
def __init__
(self)
: self.brand=
"dell"
self.cpu=
"i7"
self.ram=
"16g"
tom=
student
("tom"
,1825
)tom.
show()
print
(tom.laptop)
print
(tom.laptop.brand)
print
(tom.laptop.cpu)
tom 1825
<__main__.student.laptop object at 0x000001dc62922f10
>
dell
i7
2、類的繼承
實現**的重用,相同的**不需要重複的編寫
繼承的傳遞性
子類繼承父類,可以直接享受父類中已經封裝好的方法,不需要再次開發
方法的重寫
當父類的方法實現不能滿足子類的需求時,可以對方法進行重寫
多繼承
3、多型
多型可以增加**的靈活度
以繼承和重寫父類方法為前提
是呼叫方法的技巧,不會影響到類的內部設計
class animal:
def __init__
(self)
:print
("這是動物類"
) def eat
(self)
:print
("動物吃東西"
)#繼承
class dog
(animal)
: def __init__
(self)
:print
("這是狗類"
) #方法的重寫
def eat
(self,x=none)
: #調取父類的方法
#覆蓋,保留新的功能(使用super),增添新的功能(小狗愛吃骨頭)
super()
.eat()
if x==none:
print
("小狗愛吃骨頭"
)else
:print
("小狗愛吃"
+str
(x))
#多型,不同的類中,有相同的方法,eat()
#多型,同乙個類中,相同的函式,引數不一樣,出現不同的狀態
dog1=
animal()
dog1.
eat(
)dog1=
dog(
)dog1.
eat(
)dog1.
eat(
"魚")
這是動物類
動物吃東西
這是狗類
動物吃東西
小狗愛吃骨頭
動物吃東西
小狗愛吃魚
內部類(成員內部類 靜態內部類 方法內部類)
一 成員內部類 最常見的內部類就是成員內部類,也稱作普通內部類 2 inner類中定義的test 方法可以訪問outer類中的資料,不受訪問控制符的影響。3 定義了成員內部類後,必須使用外部類物件來建立內部類物件,而不能直接去 new 乙個內部類物件,即 內部類 物件名 外部類物件.new 內部類 ...
內部類和匿名類
內部類在外部類中有特權 內部類可以毫無限制地訪問外部類的所有成員。編譯之後,內部類也可產生 單獨的.class檔案,檔名為 外部類名 內部類名.class例5.22 內部類使用示例。public class outerclass public static void main string args...
方法內部類(區域性內部類)
關於內部類,所謂內部類,就是乙個類裡面再寫了乙個類,和c語言裡面的巢狀關係很相似,我就介紹一下方法內部類 一 方法內部類 又名區域性內部類 由名字可知,該內部類是寫在乙個方法裡面的,其用法如下 1.方法內部類的地位和方法裡面的區域性變數相似,所以不能用public等修飾詞修飾 2.方法內部類只能在宣...