【JavaScript】21_面向对象继承
【摘要】 8、继承可以通过extends关键来完成继承时,就相当于将另一个类中的代码复制到了当前类中(简单理解)继承发生时,被继承的类称为 父类(超类),继承的类称为 子类的代码,并且可以在不修改一个类的前提对其进行扩展 封装 —— 安全性 继承 —— 扩展性 多态 —— 灵活性 <script> ...
8、继承
- 可以通过extends关键来完成继承
时,就相当于将另一个类中的代码复制到了当前类中(简单理解) - 继承发生时,被继承的类称为 父类(超类),继承的类称为 子类
的代码,并且可以在不修改一个类的前提对其进行扩展
封装 —— 安全性
继承 —— 扩展性
多态 —— 灵活性
<script>
class Animal{
constructor(name){
this.name = name;
}
sayHello(){
console.log('动物在叫')
}
}
class Dog extends Animal{
}
class Cat extends Animal{
}
class Snake extends Animal{
}
const dog = new Dog('旺财')
const cat = new Cat('汤姆')
dog.sayHello()
cat.sayHello()
console.log(dog)
console.log(cat)
</script>
方法重写
- 通过继承可以在不修改一个类的情况下对其进行扩展
OCP 开闭原则
- 程序应该对修改关闭,对扩展开放
<script>
class Animal{
constructor(name){
this.name = name
}
sayHello(){
console.log("动物在叫~")
}
}
class Dog extends Animal{
// 在子类中,可以通过创建同名方法来重写父类的方法
sayHello(){
console.log("汪汪汪")
}
}
class Cat extends Animal{
// 重写构造函数
constructor(name, age){
// 重写构造函数时,构造函数的第一行代码必须为super()
super(name) // 调用父类的构造函数
this.age = age
}
sayHello(){
// 调用一下父类的sayHello
super.sayHello() // 在方法中可以使用super来引用父类的方法
console.log("喵喵喵")
}
}
const dog = new Dog("旺财")
const cat = new Cat("汤姆", 3)
dog.sayHello()
cat.sayHello()
console.log(dog)
console.log(cat)
</script>
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)