在物件導向程式設計中,不同的子類物件呼叫相同的父類方法,產生不同的執行結果;
**示例:
需求:定義狗類和人類,要求普通的狗類開心的玩耍,特殊的狗類和公尺老鼠玩耍。
class dog(object):
def __init__(self,name):
self.name = name
def game(self):
print('%s 開心的玩耍~' %(self.name))
class pluto(dog):
# 父類的方法不能滿足子類的需求 重寫game方法
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()
# 建立乙個狗物件
wangcai = dog('大黃')
#建立另乙個狗物件
#wangcai = pluto('布魯托')
# 建立乙個人物件
xiaoming = person('小明')
# 讓小明和狗玩
xiaoming.game_with_dog(wangcai)
結果:
物件導向(三) 多型
多型是物件導向三大特性中比較難理解的乙個概念,但並不複雜!在這裡介紹下有關多型的概念以及相關用法。多型可以理解為對於同乙個方法,根據不同的物件產生不同的結果。光說肯定很抽象,下面用個例子去解釋多型。例子 package com.zzl.polymorphism public class polymo...
C 物件導向(三)多型
物件的多種形態 辛巴是獅子 辛巴是動物。animal xinba new lion 行為的多種形態 同樣的行為,但是表現形式不同。也就是說方法簽名一樣,方法體不同。簽名在這裡指的是方法名 引數以及返回值 行為的多型體現為方法的重寫 隱藏 過載 隱藏是實現多型的基本方法之一。class program...
LUA物件導向程式設計(三)多型
先來了解一下多型的概念。在物件導向語言中,多型本質就是執行時繫結,比如有乙個父類baseclass,它有2個子類subclass1,subclass2。baseclass有乙個方法func 兩個子類都重寫了這個方法。那麼我們可以定義乙個baseclass的引用obj,讓它指向乙個子類的物件,比如ba...