// 定义动物类
class Animal {
// 定义动物类的构造函数
constructor(nickName, sex, age) {
// 利用构造函数给动物的属性赋值
this.nickName = nickName
this.sex = sex
this.age = age
}
// 定义方法,并将方法添加到原型上
sayHi() {
console.log(`Hi!我叫${this.nickName},今年${this.age}岁,我是${this.sex}`);
}
eat(str) {
console.log(`我喜欢吃${str}`);
}
sleep(time) {
console.log(`我每天睡${time}个小时`);
}
}
// 创建一个动物对象
let a1 = new Animal('佩奇', '女生', 6)
a1.sayHi()
a1.eat('蛋糕')
a1.sleep(12)
console.log('-----------------------------------------');
// 定义狗狗类
// class关键字,定义类;extends关键字继承类,
// 采用这种方式,Animal的方法,此刻已经全部继承过来了。
class Dog extends Animal {
constructor(nickName, sex, age, type) {
//调用父类的构造函数,而且必须放在子类构造函数的最上方
super(nickName, sex, age)
this.type = type
}
play() {
console.log(`我一只${this.type},我会玩飞盘`);
}
}
let d1 = new Dog('旺财', '男生', 6, '拉布拉多')
d1.sayHi()
d1.eat('牛肉')
d1.sleep(8)
d1.play()