#組合
class people:
school='luffycity'
def __init__(self,name,age,***):
self.name = name
self.age = age
self.*** = ***
class teacher(people):
def __init__(self,name,age,***,level,salary):
super(teacher, self).__init__(name,age,***)
self.level=level
self.salary=salary
def teach(self):
print("%s is teaching"%self.name)
class student(people):
def __init__(self,name,age,***,class_time):
super(student, self).__init__(name,age,***)
self.class_time=class_time
def learn(self):
print('%s is learning'%self.name)
class course:
def __init__(self,course_name,course_price,course_period):
self.course_name=course_name
self.course_price=course_price
self.course_period=course_period
def tell_info(self):
print('課程名 課程** 課程週期'%(self.course_name,self.course_price,self.course_period))
class date:
def __init__(self,year,mon,day):
self.year=year
self.mon=mon
self.day=day
def tell_info(self):
print('%s-%s-%s '%(self.year,self.mon,self.day))
# teacher1=teacher('alex',18,'male',10,3000)
# teacher2=teacher('egon',18,'male',30,3000)
# python = course('python',2000,'3mons')
# linux=course('linux',3000,'4mons')
# print(python.course_name)
# teacher1.course=python
# teacher2.course=python
# print(python)
# print(teacher1.course)
# print(teacher2.course)
# teacher1.course.tell_info()
# student1=student('張三',29,'female','00:09:00')
# student1.course1=python
# student1.course2=linux
# student1.course1.tell_info()
# student1.course2.tell_info()
# student1.courses=
student1=student('張三',29,'female','00:09:00')
d=date(1998,2,30)
python = course('python',2000,'3mons')
student1.birth=d
student1.birth.tell_info()
student1.course=python
student1.course.tell_info()
抽象類
import abc
class animal(metaclass=abc.abcmeta):#只能被繼承,不能例項化
all_type='animal'
@abc.abstractmethod
def run(self):
pass
@abc.abstractmethod
def eat(self):
pass
# animal = animal()
class people(animal):
def run(self):
print('people is running')
def eat(self):
print('people is eating')
class pig(animal):
def run(self):
print('pig is running')
def eat(self):
print('pig is eating')
class dog(animal):
def run(self):
print('dog is zouing')
def eat(self):
print('dog is eating')
peo1=people()
pig1=pig()
dog1=dog()
peo1.eat()
pig1.eat()
dog1.eat()
print(peo1.all_type)
多型
#多型:同一種事物的多種形態
import abc
class animal(metaclass=abc.abcmeta):#只能被繼承,不能例項化
@abc.abstractmethod
def run(self):
pass
class people(animal):
def run(self):
print('people is running')
class pig(animal):
def run(self):
print('pig is running')
class dog(animal):
def run(self):
print('dog is zouing')
class cat(animal):
def run(self):
print('cat is zouing')
#多型性:指的是在可以不考慮物件的型別的情況下而直接使用物件
鴨子型別
#
## class file:
# def read(self):
# pass
## def write(self):
# pass
## class disk:
# def read(self):
# print('disk read')
## def write(self):
# print('disk write')
## class text:
# def read(self):
# print('text read')
## def write(self):
# print('text write')
## disk =disk()
# text=text()
## disk.read()
# disk.write()
## text.write()
# text.read()
#序列型別:列表list 、元組tuple、字串str
l=list([1,2,3])
t=tuple(('a','b''c'))
s=str('hello')
print(l.__len__())
print(t.__len__())
print(s.__len__())
def len(obj):
return obj.__len__()
print(len(l))
print(len(t))
print(len(s))
物件導向基礎2 多型 抽象類
抽象方法必須存在抽象類中,既抽象類和抽象方法需關鍵字abstract 繼承抽象類的子類,必須將父類中抽象方法全部重寫,除非該子類也是抽象類,因為抽象成員不能有任何實現 抽象方法不能有任何實現 方法體 抽象方法必須包含在抽象類中 抽象類不能被例項化 抽象類中可以包含抽象成員,也可以包含有具體 的成員 ...
抽象類 多型與介面
abstract 修飾的類為抽象類 方法為抽象方法。含有抽象方法,必被宣告為抽象類。抽象類不能例項化。不能修飾私有方法 構造器 靜態方法 final方法。final 修飾的類不能被繼承 修飾的方法不能被子類重寫 標記的變數名稱大寫且只能被賦值一次。介面介面中所有方法均為公共抽象方法。pulic ab...
Python 多型與抽象類
多型也稱 多型性 指的是同一種型別的事物,不同的形態。在python中的多型指的是讓多種類若具備類似的資料屬性與方法屬性,都統一好命名規範,這樣可以提高開發者的 統一性,使得呼叫者更方便去理解。為了在不知道物件具體型別的情況下,統一物件呼叫方法的規範 名字 父類 定製一套統一的規範。比如 方法名統一...