面向对象的三大特征

2018-04-20  本文已影响0人  胖虎很可爱

面向对象的三大特征

封装:是面向对象方法的重要原则,就是把对象的属性和行为(数据)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节,就是把不想告诉或者不该告诉别人的东西隐藏起来,把可以告诉别人的公开,别人只能用我提供的功能实现需求,而不知道是如何实现的。增加安全性

继承:是面向对象最显著的一个特性,继承是从已有的类中派生出新的类称为子类,子类继承父类的数据属性和行为,并能根据自己的需求扩展出新的行为,提高了代码的复用性。

多态:有这么一句话,父类引用指向子类对象,通过一个例子说明:

需要实现吃各种水果,有香蕉,苹果,梨子等等。
我们是不是就得写:
public  void eat(Banana banana) { //.....}
public  void eat(Apple apple) { //.....}
等等等等。这样是不是很麻烦啊,但是我要是把这个方法写成:
public void eat(Fruit fruit){//....} 
这样只要把其他苹果香蕉等继承Fruit或者实现Fruit接口,就都可以作为eat的参数,eat方法中的参数就是父类引用指向子类对象。

python中多态的体现:

class Person(object):

    def __init__(self, name, gender):
        self.name = name
        self.gender = gender

    def whoAmI(self):
        return 'I am a {}, my name is {}'.format(self.__class__.__name__, self.name)

class Student(Person):

    def __init__(self, name, gender, score):
        super(Student, self).__init__(name, gender)
        self.score = score

class Teacher(Person):

    def __init__(self, name, gender, course):
        super(Teacher, self).__init__(name, gender)
        self.course = course

p = Person('Tim', 'Male')
s = Student('Bob', 'Male', 88)
t = Teacher('Alice', 'Female', 'English')
print(p.whoAmI())
print(s.whoAmI())
print(t.whoAmI())
上一篇下一篇

猜你喜欢

热点阅读