天天看点

面向对象语言总结

 C++、java、C#、Python、Php等语言均支持OOP,但是有很多规则,他们却不尽相同,本文重点总结一下几种语言在OOP中的共性与特性,只要把这些点区分开,其实几种语言的代码你就都可以运用自如。

详见下表:

C++

Java

C#

Python

PHP

 Lua

强类型(静态类型)

弱类型(动态类型)

 弱类型(动态类型)

1.支持多继承

2.持private、protected、public三种继承方式

1.不支持多继承

2.只有一种继承方式(关键字extends)

2.只有一种继承方式(无关键字,class B : A)

2.只有一种继承方式(无关键字:class C(B,A))

2.只支持一种继承方式(关键字extends)

不支持继承,但可用metatable实现 

1.无接口概念

1.有接口概念

2.支持接口多继承

 1.无接口概念

支持函数重载

1.不支持函数重载

2.可通过默认参数实现重载

支持子类覆盖父类方法

支持子类覆盖父类方法 

不可封装属性

可以封装属性

 不可封装属性

隐藏成员变量使用:private/protected

变量名称前加双下划线

 变量用local修饰

this->访问成员

this.访问成员

self.访问成员

$this->访问成员

 self.访问成员

构造函数为类名

__init__

__construct

 无此概念

析构函数为~类名

无需自己析构

__del__

__destruct