Ориентированные на изображении: наследование, полиморфизм, инкапсуляция
Класс ParentClass1: пропуск класса ParentClass2: пропуск класса SubClass (ParentClass1): # 单继承 проход класса SubClass2 (ParentClass1, ParentClass2): # 多继承 проход
Подкласс определенных атрибутов Если пить такое же имя, что и свойство родительского класса, подкласс приоритета вызова не покрывает указанный
Когда наследование:
1. Когда класс существенно отличается, и небольшой компонент более широкого класса вещей, необходимых по классу, с комбинацией.
2. Когда есть много одного и того же функционального класса, эти общие черты, экстрагированный из наследования базового класса.
Наследование также имеет два значения:
1. Наследование и производные: повторное использование кода уменьшается. (Не независимый, не рекомендуется)
2. Заявление подклассы совместим с базовым классом определяет класс интерфейса, подкласс наследует класс интерфейса и метод, описанный в реализации интерфейса. (VIP рекомендуется)
класс папа: Деньги = 10 DEF в __init__ (Self, имя): Print ( ' папа ' ) self.name = имя DEF hit_son (Self): Print ( ' % S есть Сын HIT ' % self.name) класса сын (папа) : деньги = 55 # приоритета вызова подкласса, но не затрагивающая S1 = сын ( « SXj » ) # свойства методы , унаследованные сын классового отца, есть необходимость передать параметрам имени папу Print (s1.money, s1.name, Dad.money ) s1.hit_son ()
"" ""
DAD
55 SXj 10
SXj попадания сына
Наследование интерфейса: нормированный дизайн. Сделать хорошую абстракцию, которая обеспечивает совместимый интерфейс.
Импорт ABC # наследование интерфейса играет сила ограничения подкласса класс All_file (= метакласс что abc.ABCMeta): # наследование интерфейса: определение родительского класса, должен иметь заранее определенные методы чтения и запись, родитель не может быть реализован, но она должна быть подклассами есть два этих метода @ abc.abstractclassmethod # ниже , но абстрактные методы (обязательный подкласс должен прочитать и написать методы) DEF чтения (Self): Pass DEF написать (Self): Pass класса Disk (All_file): DEF чтения (Self) : Печать ( ' Disk Read ' ) DEF Write (Self): Печать ( ' Disk Write ' ) класс CDrom (All_file): пройти класс Mem (All_file): передать d1 = Disk () d1.read () d1.write ()
"" "
Чтения диска
записи на диск