Java: class Student extends Person
C#: : class Student : Person
Python: class Student(Person)
Python 支持 多继承,C#,Java均不支持,C++支持多继承 Java: 当一个类未显式继承任何类时,隐式继承object,这点和C#一致,所有类型最后均继承 Object,即 Object 是所有类 祖先类
Java: class Student implements IStudy, ISay
C#: class Student : IStudy, ISay
Python: class Student(IStudy, ISay)
在 Python 中 接口 由 抽象类和抽象方法 去实现
访问父类成员
Java: super.
C#: base.
Python: super().
JavaScript:
访问原型链
Person.prototype.msg = "abc"
pObj.__proto__.hello = function () {}
指向自己的引用
Java: this.
C#: this.
Python: self.
JavaScript: this.
final class 类名 { }
修饰符(public/private/default/protected) final 返回值类型 方法名(){ }
注:实例变量也可以被定义为 final, 被定义为 final 的变量不能被修改。 被声明为 final 类的方法自动地声明为 final, 但是实例变量并不是 final
该类不能被继承 sealed class 类名 { }
sealed 修饰方法或属性 可允许 类从基类继承,并防止它们重写特定的虚方法或虚属性
sealed 对虚方法或虚属性,也就是同 override 一起使用,若非虚方法或虚属性 会报出错误: cannot be sealed because it is not an override
protected sealed override void N()
{
Console.WriteLine("B.N()");
}
该方法无法被重写,只要此方法未被标记为 virtual
不过无法被重写,可以被覆盖
显式 覆盖 从父类继承来的方法
public new SameMethod() { }
构造器就是一方法/函数 方法名与类名相同,可以有多个构造器,允许重载
与 Java 相同
def __ init__(self,arg1,arg2,...):
Person(name, gender) {
this.name = name;
this.gender = gender;
}
var p = new Person("eeee", "man");
JS 的面向对象和其它不同,可以说是面向原型
构造函数完全就是一方法,只是规范此方法首字母大写
保护对类、变量、方法和构造方法的访问 Java 支持 4 种不同 访问权限
注意: 在C#中,命名空间只是为了区别类,为了方便管理类,无法限 制访问程度
本文作者: yiyun
本文链接: https://cloud.tencent.com/developer/article/1970535
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!