您好,登录后才能下订单哦!
C++、java、C#、Python、Php等语言均支持OOP,但是有很多规则,他们却不尽相同,本文重点总结一下几种语言在OOP中的共性与特性,只要把这些点区分开,其实几种语言的代码你就都可以运用自如。
详见下表:
C++  | Java  | C#  | Python  | PHP  | Lua  | 
强类型(静态类型)  | 强类型(静态类型)  | 强类型(静态类型)  | 弱类型(动态类型)  | 弱类型(动态类型)  | 弱类型(动态类型)  | 
1.支持多继承  | 1.不支持多继承  | 1.不支持多继承  | 1.支持多继承 2.只有一种继承方式(无关键字:class C(B,A))  | 1.支持多继承 2.只支持一种继承方式(关键字extends)  | 不支持继承,但可用metatable实现  | 
1.无接口概念  | 1.有接口概念 2.支持接口多继承  | 1.有接口概念 2.支持接口多继承  | 1.无接口概念  | 1.有接口概念 2.支持接口多继承  | 1.无接口概念  | 
支持函数重载  | 支持函数重载  | 支持函数重载  | 1.不支持函数重载 2.可通过默认参数实现重载  | 1.不支持函数重载 2.可通过默认参数实现重载  | 1.不支持函数重载 2.可通过默认参数实现重载  | 
支持子类覆盖父类方法  | 支持子类覆盖父类方法  | 支持子类覆盖父类方法  | 支持子类覆盖父类方法  | 支持子类覆盖父类方法  | 支持子类覆盖父类方法  | 
| 不可封装属性 | 不可封装属性 | 可以封装属性 | 可以封装属性 | 不可封装属性 | 不可封装属性  | 
| 隐藏成员变量使用:private/protected | 隐藏成员变量使用:private/protected | 隐藏成员变量使用:private/protected | 变量名称前加双下划线 | 隐藏成员变量使用:private/protected | 变量用local修饰  | 
| this->访问成员 | this.访问成员 | this.访问成员 | self.访问成员 | $this->访问成员 | self.访问成员  | 
| 构造函数为类名 | 构造函数为类名 | 构造函数为类名 | __init__ | __construct | 无此概念  | 
| 析构函数为~类名 | 无需自己析构 | 无需自己析构 | __del__ | __destruct | 无此概念  | 
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。