当前位置: 首页 > news >正文

如何在网站做直播间wordpress侧边栏位置

如何在网站做直播间,wordpress侧边栏位置,软文是什么文章,wordpress后台添加导航面向对象编程中的继承与多态 今天开始学习面向对象编程的核心概念——继承与多态,发现这两个概念和现实生活的现象很像,学起来挺有意思的。 一、继承 1. 简单继承的实现 先试着写了一个父类Animal和子类Dog的例子,发现继承真的像"遗…

面向对象编程中的继承与多态

今天开始学习面向对象编程的核心概念——继承与多态,发现这两个概念和现实生活的现象很像,学起来挺有意思的。

一、继承

1. 简单继承的实现

先试着写了一个父类Animal和子类Dog的例子,发现继承真的像"遗传"一样:

  •  父类定义了动物的基本属性(名字)和行为(发声)
  •  子类Dog不用重复写这些代码,直接通过..Animal(...)继承父类的功能
  •  子类还能重写父类的方法,比如让狗发出"汪汪"声而不是通用的"发出声音"
// 定义父类Animal
class Animal {ctor(name) {this.name = name;}speak = function() {return this.name + " makes a sound.";}
}// Dog类继承Animal
class Dog {ctor(...) {this = ..Animal(...);  // 调用父类构造函数}// 重写speak方法speak = function() {return this.name + " barks.";}
}import console;
var myDog = Dog("Buddy");
console.log(myDog.speak());  // 输出:Buddy barks.
console.pause();

截图一

 

2. 多层继承的理解

又试了三层继承(Animal→Dog→Puppy),发现子类可以层层继承上层的所有功能:

  • Puppy不仅能用Animal的name属性,还能复用Dog的构造逻辑
  • 只需要在Puppy里写自己特有的逻辑(比如"小狗轻轻叫")
import console;class Animal {ctor(name) { this.name = name; }speak = function() { return this.name + " makes a sound."; }
}class Dog {ctor(...) { this = ..Animal(...); }speak = function() {return this.name + " barks."; }
}class Puppy {ctor(...) { this = ..Dog(...); }speak = function() {return this.name + " puppy barks softly."; }
}var myPuppy = Puppy("Tommy");
console.log(myPuppy.speak());  // 输出:Tommy puppy barks softly.
console.pause();

截图二

 

二、多态

1. 多态的实际应用

写一个猫狗的例子理解多态,发现它的核心是"同一个方法名,不同对象有不同表现":

  • Dog和Cat都继承Animal,但各自的speak方法不一样
  • 定义一个通用函数makeSound,不管传入的是狗还是猫,都能正确调用对应的发声方法
class Animal {ctor(name) { this.name = name; }speak = function() {return this.name + " makes a sound."; }
}class Dog {ctor(...) { this = ..Animal(...); }speak = function() { return this.name + " barks."; }
}class Cat {ctor(...) { this = ..Animal(...); }speak = function() { return this.name + " meows."; }
}function makeSound(animal) {console.log(animal.speak());
}import console;
var myDog = Dog("Buddy");
var myCat = Cat("Whiskers");
makeSound(myDog);  // 输出:Buddy barks.
makeSound(myCat);  // 输出:Whiskers meows.
console.pause();

截图三

 

2. 数组中的多态实践

把不同动物对象放到数组里统一处理,更能体现多态的便利:

  • 不需要区分数组里的对象是狗还是猫
  • 直接循环调用speak方法,多态会自动根据对象类型执行对应的逻辑
class Animal {ctor(name) { this.name = name; }speak = function() { return this.name + " makes a sound."; }
}class Dog {ctor(...) { this = ..Animal(...); }speak = function() { return this.name + " barks."; }
}class Cat {ctor(...) { this = ..Animal(...); }speak = function() { return this.name + " meows."; }
}import console;
var animals = {Dog("Buddy"), Cat("Whiskers")};
for(k, animal in animals) {console.log(animal.speak());
}
// 输出:
// Buddy barks.
// Whiskers meows.
console.pause();

截图四

截图四

三、挑战:用继承和多态计算图形面积

1. 要求

  • 定义Shape父类,包含计算面积的area方法
  • 定义Circle和Rectangle子类,重写area方法
  • 用数组存储不同图形对象,遍历输出面积

2. 代码实现

import math;
import console;class Shape {area = function() { return 0; }  // 父类默认返回0
}class Circle {ctor(radius, ...) {this = ..Shape(...);this.radius = radius;}area = function() {return ..math.pi * this.radius * this.radius;}
}class Rectangle {ctor(width, height, ...) {this = ..Shape(...);this.width = width;this.height = height;}area = function() {return this.width * this.height;}
}var shapes = {Circle(5), Rectangle(4, 6)};
for(k, shape in shapes) {console.log("面积: " + shape.area());
}
// 输出:
// 面积: 78.539816339745
// 面积: 24
console.pause();

截图五

 

四、总结

  1. 继承的核心:子类复用父类的属性和方法,通过..父类名(...)实现构造继承,避免重复代码。
  2. 多态的核心:相同方法名在不同对象上有不同实现,依赖方法重写,让代码能"灵活应变"。
  3. 两者的结合:继承解决代码复用,多态解决功能扩展,一起用能让程序结构更清晰、更好维护。

http://www.dtcms.com/a/442522.html

相关文章:

  • 网站设计精美案例wordpress插件推荐
  • 第1章:初识 Spring AI-Java 开发者的 AI 新纪元
  • 北京餐饮品牌设计公司保定seo建站
  • 2025年SEVE SCI2区,具有局部和全局参数自适应差分进化算法,深度解析+性能实测
  • 32位ubuntu14.0.4安装chrome
  • geo Counts 数据 ,机器学习 模型的外部验证 ROC外部验证数据处理流程
  • 深圳网站建设制作企业dw做网站背景图片设置
  • h5生成济南关键词优化费用情况
  • sae 网站备案信息运营主要做什么工作
  • 谈谈如何建设企业人力资源网站广州南沙建设网站
  • 10.4 双指针
  • 关于举办中国国际大学生创新大赛(2025)总决赛现场比赛通知
  • 山西商城网站建设网络推广网址
  • 【苍穹外卖日记】Day1-环境搭建与apifox文档建立
  • 宁波建站模板厂家wordpress文字logo
  • 【Qt】事件
  • 数字人民币钱包抉择:匿名自由与实名安全的法律风险评估
  • 做网站需要用到什么北京养老网站开发
  • 专门做电商的网站有哪些广告推广策略
  • Java EE初阶启程记06---synchronized关键字
  • QT(c++)开发自学笔记:1.串口
  • 最小外接矩形2显示四条边缘
  • 什么是网站建设与维护潘嘉严个人网站
  • 天津做网站哪家好如何申请域名后缀
  • MCP(trae)+ wireshark-提高干活效率
  • 机器视觉3D检测中,.ply(Polygon File Format) 3D点云格式
  • 如何网站优化排名做兼职比较正规的网站
  • 兰亭妙微高端网站设计案例:品牌官网如何做到美学与转化并重
  • 网站主机提供商:选择与您业务相匹配的托管服务
  • Linux学习笔记--insmod 命令