美文网首页
面向对象的三大特征

面向对象的三大特征

作者: 胖虎很可爱 | 来源:发表于2018-04-20 16:17 被阅读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())
    

    相关文章

      网友评论

          本文标题:面向对象的三大特征

          本文链接:https://www.haomeiwen.com/subject/jshzkftx.html