<script>
class Animal {
constructor(name, gender) {
this.name = name;
this.gender = gender;
}
// 这个方法相当于以前加到原型上的实例方法
run() {
console.log('跑吧');
}
// 这个方法加了static修饰符,就是以前加到类身上的静态方法
static getMaxAge() {
console.log(250);
}
}
// 动物拥有的属性方法,按照常理来讲,狗应该也有,所有这里通过extends关键字实现继承,提高复用,减少冗余
class Dog extends Animal {
eat() {
console.log('吃屎');
}
}
let chaiquan = new Dog('柴犬', '公');
console.log(chaiquan.name);
console.log(chaiquan.gender);
chaiquan.run();
chaiquan.eat();
// 人也是动物,也继承一下
class Person extends Animal {
// 如果继承的子类拥有独特的属性,需要写构造器来添加,
// 但是构造器里面的第一句话必须是super()调用
constructor(name, gender, price) {
super(name, gender);
this.price = price;
}
study() {
console.log('闻鸡起舞');
}
}
let xiaoming = new Person('小明', '男', '一张毛爷爷');
console.log(xiaoming.name);
console.log(xiaoming.gender);
console.log(xiaoming.price);
xiaoming.run();
xiaoming.study();
// Person也继承了Animal的静态方法,所以可以直接拿来调用
Person.getMaxAge()
</script>
01_18.class继承
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 接口可以继承接口。抽象类可以实现(implements)接口,抽象类可以继承具体类。抽象类中可以有静态的main方...
- Xamarin XAML语言教程构建ControlTemplate控件模板 控件模板ControlTemplate...
- 如果你已经看过第一篇揭秘babel的魔法之class魔法处理,这篇将会是一个延伸;如果你还没看过,并且也不想现在就...