重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
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 | 无此概念 |