自己的一点小看法
Topic source静态语言的面向对象更加严谨和严格。 python作为动态语言对类型的强调只在运行阶段,所以让人感觉 这里的多态并不是多么重要,实际上python中把多态这种特性已经融入到语法中了,就像设计模式,大家都说设计模式重要,其实很多设计模式在C#中已经变成了语法级别的东西了,例如delegate委托。
- 1
静态语言的面向对象更加严谨和严格。 python作为动态语言对类型的强调只在运行阶段,所以让人感觉 这里的多态并不是多么重要,实际上python中把多态这种特性已经融入到语法中了,就像设计模式,大家都说设计模式重要,其实很多设计模式在C#中已经变成了语法级别的东西了,例如delegate委托。
进击丶崔永航
私以为Java,C#才是真正意义上的面向对象的语言,因为静态类型的语言在语义上类与类之间的关系上更加严谨,也一直觉得动态类型语言没有真正意义上的多态,因为它们的动态性让它们显得太随便~但他们的方便之处却又是显而易见的... 例如:
只要类实现了run()方法,那么该类对象就可以传到ExecuteRun()中执行,这里听起来似乎很像静态语言中接口的实现,实现一个IRun的接口,然后重写了各自的ExecuteRun()的方法...动态语言不再像静态语言一样,再为每个类去定义ExecuteRun()方法或者为他们再创建一个父类实现ExecuteRun()方法,这样代码量是大大减少的... 但是,假设此处我们只允许人可以跑,而不让狗跑呢? 静态语言中可以ExecuteRun(Person anyType),但此处就需要添加一个判断isinstance(anyType,Person),当类型满足时才允许执行run()