js—class和继承
一.class
1.constructor
2.属性
3.方法
class Student {
constructor(name, age) {
this.name = name;
this.age = age;
}
sayhi() {
console.log(
`姓名,${this.name}, 年龄,${this.age}`
);
//上述形式为模板字符串,写起来比较方便,为es6新增
//若用以前的写法,则需要用+号进行拼接
}
}
const zby = new Student('zby', 22);
//new Student 时,进入constructor构造方法
console.log(zby.name);
console.log(zby.age);
zby.sayhi();
二.继承
//父类
class Person {
constructor(name) {
this.name = name;
}
eat() {
console.log(`${this.name} ,吃东西了`);
}
}
//子类--学生类
class Student extends Person {
constructor(name, age) {
super(name);
this.age = age;
}
sayhi() {
console.log(`${this.name},今年 ${this.age} 岁了`);
}
}
//子类--老师类
class Teacher extends Person {
constructor(name, sub) {
super(name);
//把name给Person 的constructor
this.sub = sub;
}
teach() {
console.log(`${this.name} 教 ${this.sub} 课`);
}
}
const zby = new Student('zby', 18);
console.log(zby.name);
console.log(zby.age);
zby.sayhi();
const aaa = new Teacher('aaa', '数学');
console.log(aaa.name);
console.log(aaa.sub);
aaa.teach();