Python 物件導向3大特徵之多型

2022-09-03 15:57:08 字數 1338 閱讀 9245

多型是將不同的物件呼叫相同的方法,產生不同的執行結果。

多型可以增加**的靈活度,以繼承和重寫父類方法為前提,是呼叫方法的技巧,不會影響到類的內部設計。

我們都知道,python 是弱型別語言,其最明顯的特徵是在使用變數時,無需為其指定具體的資料型別。

示例:在 dog 類中封裝方法 game,普通狗只是簡單的玩耍。

定義 xiaotiandog 繼承自 dog,並且重寫 game 方法,哮天犬需要在天上玩耍。

定義 person 類,並且封裝乙個和狗玩的方法,在方法內部,直接讓狗物件呼叫 game 方法。

print("%s 蹦蹦跳跳的玩耍..." % self.name)

class xiaotiandog(dog):

def game(self):

print("%s 飛到天上去玩耍..." % self.name)

class person(object):

def __init__(self, name):

self.name = name

def game_with_dog(self, dog):

print("%s 和 %s 快樂的玩耍..." % (self.name, dog.name))

dog.game()

# 1. 建立乙個狗物件

# wangcai = dog("旺財")

wangcai = xiaotiandog("飛天旺財")

# 2. 建立乙個小明物件

xiaoming = person("小明")

# 3. 讓小明呼叫和狗玩的方法

xiaoming.game_with_dog(wangcai)

# 小明 和 飛天旺財 快樂的玩耍...

# 飛天旺財 飛到天上去玩耍...

game 方法是在 dog 父類中定義的,person 類中只需要讓狗物件呼叫 game 方法,而不關心具體是什麼狗。

在程式執行時,傳入不同的狗物件實參,就會產生不同的執行效果。

類的多型特性,必須滿足以下 2 個前提條件:

多型更容易編寫出通用的**,做出通用的程式,以適應需求的不斷變化!

python 物件導向的三大特徵之 繼承

繼承 object 基類,是python定義的所有類的父類 經典類 不繼承object的類稱作經典類 新式類 繼承object的類稱作新式類 python 3.x統一為新式類 經典類是類物件,新式類是型別物件 經典類的繼承是按照繼承的順序進行繼承的 新式類是按照修改的優先順序來繼承,越後修改優先順序...

物件導向三大特徵之封裝

上半句 下半句。三流的書籍和部落格只會告訴你上半句,因為它們的作者自己也不知道下半句,而讓我們接近真理,走的更遠的是下半句。並且下半句往往非常簡單。上半句就是一些半吊子挖出的天坑,就算下半句非常簡單。因為上半句的誤導產生的阻礙,讓無數人很多年也接觸不到講述真理的下半句。時刻警醒 我們要學習的是講述真...

物件導向三大特徵之封裝

將屬性封裝起來,不讓外部直接訪問 提供getset方法訪問 package com.lv.am 資料的封裝 資料的實體類物件 除了這個商品的物件 我們還有什麼現實生活中也是這樣來定義乙個實體類 public class goods public void setname string name pu...