美文网首页ITS·黑客
Python学习笔记十五

Python学习笔记十五

作者: 6156fc232124 | 来源:发表于2017-05-12 23:49 被阅读0次

    继承和多态

    1.继承可以把父类的所有功能都直接拿过来,这样就不必重零做起,子类只需要新增自己特有的方法,也可以把父类不适合的方法覆盖重写。

    2.静态语言对比动态语言

    动态语言的鸭子类型特点决定了继承不像静态语言那样是必须的。

    3.如果子类也定义了一个构造函数,那么应该在子类的构造函数中显式的调用父类的构造函数。

    因为在本质上,子类重写了这个构造函数,如果不调用超类的构造函数,那么在超类中定义的属性就无法使用!!!

    4.java和python鸭子类型的对比

    java代码:会报编译错误**

    public class D {

    public static void main(String[] args) {

    Dog dog=new Dog();

    Tree tree=new Tree();

    //在此会报编译错误

    two_animal(tree);

    }

    public static void two_animal(Animal animal){

    System.out.println("Two animal is running");

    }

    }

    class Animal{

    public void run(){

    System.out.println("Animal is running");

    }

    }

    class Dog extends Animal{

    public void run (){

    System.out.println("Dog is running");

    }

    }

    class Tree{

    public void run(){

    System.out.println("Tree is running");

    }

    }

    python则可以正常运行

    class Animal():

    def run(self):

    print("Animal is running")

    class Dog(Animal):

    def run(self):

    print("Dog is running")

    def runs(animal):

    print("Two animal is running")

    class Tree():

    def run(self):

    print('Tree is running')

    dog = Dog()

    tree = Tree()

    runs(dog)

    runs(tree)

    相关文章

      网友评论

        本文标题:Python学习笔记十五

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