在JS中的继承是单继承,即:一个类只能继承一个类。
<!DOCTYPE html>
<html>
<head>
<title>JS中类的继承 extends</title>
</head>
<body>
<script type="text/javascript">
// 定义子类时,使用extends关键字继承父类
// 父类不需要实例化
// 定义父类
class A{
constructor(){
this.age = 30;
}
say(){
console.log('我是父类A中的实例方法say');
}
static song(){
console.log('我是父类A中的静态方法song');
}
}
//定义子类
class B extends A{ //子类B继承了父类A
//子类构造方法
constructor(){
//函数形式的super() 表示调用父类的构造方法
//如果子类定义了构造方法,且在构造方法中使用了this,必须先调用super()
super();
this.sex = '保密';
}
//super.方法() 写法,如果当前方法是实例方法,则调用父类的实例方法
//如果当前方法是静态方法,则调用父类的静态方法
//同名的实例方法,子类会覆盖父类
say(){
//如果需要同时执行父类的方法
//需要使用super.父类方法(); 调用
super.say();
console.log('我是子类B中的实例方法say');
}
//同名的静态方法,子类会覆盖父类
//
static song(){
//如果需要同时执行父类的方法
//需要使用super.父类方法(); 调用
// super.coding();
console.log('我是子类B中的静态方法song');
}
}
//实例化子类得到子对象
var obj = new B();
obj.say();
console.log(obj.age)
//调用静态方法
B.song();
</script>
</body>
</html>
|