- 物件導向複習
- 繼承 (可以繼承父類別所有的變數和方法,但可以不繼承建構子)
- 繼承父類別的建構子
- 建立自己的建構子以及使用超類別(繼承父類別建構子)
物件導向複習
class myname:
def __init__(self,name):
self.name=name
def printName(self):
print("Name = "+self.name+"您好")
xxx=myname(input("請輸入名字"))
xxx.printName()
yyy=myname(input("請輸入名字"))
yyy.printName()
繼承
- 可以繼承父類別所有的變數和方法
- 如子類別沒寫建構子,建構子會跟父類別一樣
class myname:#父類別
def __init__(self, name):
self.name = name
def printName(self):
print ("Name = " + self.name+"您好")
class welcome(myname):#子類別 (可以繼承父類別所有的變數和方法)
#如子類別沒寫建構子,建構子會跟父類別一樣
def saywelcome(self):
print ("Welcome")
obj1 = myname(input("請輸入姓名"))
obj1.printName()
obj2 = welcome(input("請輸入姓名"))
obj2.printName() #調用父類別的方法
obj2.saywelcome()#調用自己類別的方法
如果子類別有寫建構子,不繼承父類別的建構子
class myname:#父類別
def __init__(self, name):
self.name = name
def printName(self):
print ("Name = " + self.name+"您好")
class welcome(myname):#子類別 (可以繼承父類別所有的變數和方法,但不繼承父的建構子 )
def __init__(self, name):
self.name = name
def saywelcome(self):
print ("Welcome")
obj1 = myname(input("請輸入姓名"))
obj1.printName()
obj2 = welcome(input("請輸入姓名"))
obj2.printName() #調用父類別的方法
obj2.saywelcome()#調用自己類別的方法
繼承父類別的建構子
#繼承建構子
class myname:#父類別
name = ""
def __init__(self, name):
self.name = name
def printName(self):
print ("Name = " + self.name+"您好")
class welcome(myname):#子類別
def __init__(self, name):
super().__init__(name) #超類別(繼承父類別的建構子)
#self.name = name
def saywelcome(self):
print ("Welcome")
Judy = myname(input("請輸入姓名"))
Judy.printName()
Andy = welcome(input("請輸入姓名"))
Andy.printName()
Andy.saywelcome()
建立自己的建構子以及使用超類別(繼承父類別建構子)
#建立自己的建構子以及使用超類別(繼承父類別建構子)
class myname:#父類別
def __init__(self, name):
self.name = name
def printName(self):
print ("Name = " + self.name+"您好")
class welcome(myname):#子類別
def __init__(self, name,age): #建立自己的建構子
super().__init__(name) #超類別(繼承父類別建構子)
self.age = age #建立自己的類別變數
def saywelcome(self):
print (self.name,"Welcome",self.age,"歲")
Judy = myname(input("請輸入姓名"))
Judy.printName()
Andy = welcome(input("請輸入姓名"),input("請輸入年紀"))
Andy.printName()
Andy.saywelcome()
class myname:#父類別
def __init__(self,name):
self.name=name
def printname(self):
print("哈囉"+self.name+",你好嗎?")
class welcome(myname): #子類別(繼承父類別所有變數跟方法)
#如果沒有建構子,則繼承父類別的建構子
#如果有寫建構子,則會使用子類別自己的
def saywelcome(self):
print("Welcome "+self.name+" ,how are you")
class welcome2(myname): #子類別(繼承父類別所有變數跟方法)
#如果沒有建構子,則繼承父類別的建構子
def __init__(self, name,age): #建立自己的建構子
super().__init__(name) #超類別(繼承父類別建構子)
self.age = age #建立自己的類別變數
#如果有寫建構子,則會使用子類別自己的
def saywelcome(self):
print("Welcome "+self.name+" ,how are you"+self.age)
obj_1=myname(input("請輸入姓名: "))
obj_1.printname()
obj_2=welcome(input("請輸入第二個姓名: "))#使用子類別
obj_2.printname()#使用父類別的方法
obj_2.saywelcome()#使用子類別的方法
obj_3=welcome2(input("請輸入第三個姓名: "),input("請輸入年紀"))
obj_3.saywelcome()
Yiru@Studio - 關於我 - 意如