如何在Javascript中继承静态和非静态属性?

时间:2016-11-18 08:37:56

标签: javascript oop inheritance prototypal-inheritance

我对面向对象编程和Javascript继承感到困惑。

我认为研究以下代码将是理解Javascript中继承的好方法。 B类都继承并覆盖基类A的属性。

所以任何人都可以在Javascript中向我展示以下Java代码的简洁等价

public class A {
    public static String a = "a", b = "b";

    public static String c() {
        return "c";
    }
    public static String d() {
        return "d";
    }

    public String e = "e", f = "f";

    public String g() {
        return "g";
    }
    public String h() {
        return "h";
    }
}
public class B extends A {
    public static String a = "A";

    public static String c() {
        return "C";
    }

    public String e = "E";

    public String g() {
        return "G";
    }
}

以便以下Javascript代码给出相应的输出

var a = new A();
var b = new B();
console.log(A.a);    // a
console.log(B.a);    // A  override static property
console.log(A.b);    // b
console.log(B.b);    // b  inherit static property
console.log(A.c());  // c
console.log(B.c());  // C  override static method
console.log(A.d());  // d
console.log(B.d());  // d  inherit static method
console.log(A.e);    // e
console.log(B.e);    // E  override non-static property
console.log(A.f);    // e
console.log(B.f);    // e  inherit non-static property
console.log(a.g());  // g
console.log(b.g());  // G  override non-static method
console.log(a.h());  // h
console.log(b.h());  // h  inherit non-static method

1 个答案:

答案 0 :(得分:0)