26. 继承(视频配套代码)
qihemm 2025-07-03 18:12 7 浏览 0 评论
如下代码配套视频:《26. 继承|代码复用,类的层级设计》
26.1 类的继承
Animal.java
package com.inheritance.demo1;
/**
* @author 今日头条:老陈说编程
* 定义动物类,作为所有动物的基类
*/
public class Animal {
// 动物名称,子类可以直接访问
protected String name;
// 动物编号,子类可以直接访问
protected int num;
/**
* 构造函数,初始化动物的基本信息
* @param name 动物名称
* @param num 动物编号
*/
public Animal(String name, int num) {
this.name = name;
this.num = num;
// 输出动物名称和编号信息
System.out.println(name+"的编号:"+num);
}
/**
* 定义动物进食行为
* 具体吃什么由子类实现
*/
public void eat() {
System.out.println(this.name+"吃什么?");
}
}
Dog.java
package com.inheritance.demo1;
/**
* @author 今日头条:老陈说编程
* 狗类,继承自动物类
*/
public class Dog extends Animal {
/**
* 默认构造函数
* 调用父类构造函数,设置狗的名称为"狗",编号为123456
*/
public Dog() {
super("狗", 123456);
}
/**
* 程序入口点
* 创建Dog类的实例
* @param args 命令行参数
*/
public static void main(String[] args) {
// 创建一个Dog对象,会自动调用父类的构造函数
Dog dog = new Dog();
dog.eat();
}
}
26.2 接口继承
Switchable.java
package com.inheritance.demo2;
/**
* @author 今日头条:老陈说编程
* 定义接口:可开关的设备
*/
public interface Switchable {
// 开启设备的抽象方法
void turnOn();
// 关闭设备的抽象方法
void turnOff();
// 检查设备是否开启的抽象方法
boolean isOn();
}
SmartLight.java
package com.inheritance.demo2;
/**
* @author 今日头条:老陈说编程
* 智能灯类实现Switchable接口
*/
public class SmartLight implements Switchable {
// 灯的开关状态
private boolean isOn;
@Override
public void turnOn() {
isOn = true;
System.out.println("灯已打开,亮度100%");
}
@Override
public void turnOff() {
isOn = false;
System.out.println("灯已关闭");
}
@Override
public boolean isOn() {
return isOn;
}
}
SmartAC.java
package com.inheritance.demo2;
/**
* @author 今日头条:老陈说编程
* 智能空调类实现Switchable接口
*/
public class SmartAC implements Switchable {
// 空调的开关状态
private boolean isOn;
// 空调的温度设置,默认26度
private int temperature;
public SmartAC() {
this.temperature = 26;
}
@Override
public void turnOn() {
isOn = true;
System.out.println("空调已开启,当前温度:" + temperature + "°C");
}
@Override
public void turnOff() {
isOn = false;
System.out.println("空调已关闭");
}
@Override
public boolean isOn() {
return isOn;
}
// 空调特有的方法:设置温度
public void setTemperature(int temp) {
this.temperature = temp;
if (isOn) {
System.out.println("空调温度已调整为:" + temperature + "°C");
}
}
}
HomeController.java
package com.inheritance.demo2;
/**
* @author 今日头条:老陈说编程
* 家庭控制器类,用于控制各种智能设备
*/
public class HomeController {
// 控制任意可开关设备的方法
public void controlDevice(Switchable device, boolean on) {
if (on) {
device.turnOn();
} else {
device.turnOff();
}
}
// 检查设备状态的方法
public void checkStatus(Switchable device) {
System.out.println("设备状态:" + (device.isOn() ? "开启" : "关闭"));
}
}
Main.java
package com.inheritance.demo2;
/**
* @author 今日头条:老陈说编程
* 主类:测试接口和实现类的功能
*/
public class Main {
public static void main(String[] args) {
// 创建家庭控制器实例
HomeController controller = new HomeController();
// 创建设备实例,使用接口类型引用
Switchable light = new SmartLight();
Switchable ac = new SmartAC();
// 控制灯的开关
System.out.println("=== 控制灯 ===");
controller.controlDevice(light, true);
controller.checkStatus(light);
// 控制空调的开关和温度
System.out.println("\n=== 控制空调 ===");
controller.controlDevice(ac, true);
((SmartAC) ac).setTemperature(24); // 向下转型调用空调特有方法
controller.checkStatus(ac);
// 关闭所有设备
System.out.println("\n=== 关闭所有设备 ===");
controller.controlDevice(light, false);
controller.controlDevice(ac, false);
}
}
26.3 抽象类
Shape.java
package com.inheritance.demo3;
/**
* @author 今日头条:老陈说编程
* 抽象类:Shape(形状)
* 定义所有形状的通用属性和行为,提供抽象方法让子类实现具体逻辑
*/
abstract class Shape {
protected String color; // 形状颜色
// 构造方法初始化颜色
public Shape(String color) {
this.color = color;
}
// 获取颜色
public String getColor() {
return color;
}
// 抽象方法:计算面积(由子类实现)
public abstract double calculateArea();
// 抽象方法:绘制形状(由子类实现)
public abstract void draw();
}
Circle.java
package com.inheritance.demo3;
/**
* @author 今日头条:老陈说编程
* 子类:Circle(圆形)
* 继承自Shape,实现圆形的具体属性和方法
*/
class Circle extends Shape {
private double radius; // 圆半径
// 构造方法初始化颜色和半径
public Circle(String color, double radius) {
super(color);
this.radius = radius;
}
// 实现计算圆形面积的方法
@Override
public double calculateArea() {
return Math.PI * radius * radius;
}
// 实现绘制圆形的方法
@Override
public void draw() {
System.out.println("绘制一个" + color + "的圆形,半径为" + radius);
}
}
Rectangle.java
package com.inheritance.demo3;
/**
* @author 今日头条:老陈说编程
* 子类:Rectangle(矩形)
* 继承自Shape,实现矩形的具体属性和方法
*/
class Rectangle extends Shape {
private double width; // 矩形宽度
private double height; // 矩形高度
// 构造方法初始化颜色、宽度和高度
public Rectangle(String color, double width, double height) {
super(color);
this.width = width;
this.height = height;
}
// 实现计算矩形面积的方法
@Override
public double calculateArea() {
return width * height;
}
// 实现绘制矩形的方法
@Override
public void draw() {
System.out.println("绘制一个" + color + "的矩形,宽度为" + width + ",高度为" + height);
}
}
Main.java
package com.inheritance.demo3;
/**
* @author 今日头条:老陈说编程
* 主类:测试抽象类和子类的功能
*/
public class Main {
public static void main(String[] args) {
// 创建圆形对象并测试
Shape circle = new Circle("红色", 5.0);
System.out.println("圆形颜色:" + circle.getColor());
System.out.println("圆形面积:" + circle.calculateArea());
circle.draw();
// 创建矩形对象并测试
Shape rectangle = new Rectangle("蓝色", 4.0, 6.0);
System.out.println("\n矩形颜色:" + rectangle.getColor());
System.out.println("矩形面积:" + rectangle.calculateArea());
rectangle.draw();
}
}
相关推荐
- VLOOKUP的18种高阶用法大公开!99%的人都不知道的神操作!
-
作为被头条用户催更的Excel课代表,今天带来让HR追着要模板、让老板主动加薪的VLOOKUP终极指南!从基础到高阶一网打尽,文末送36个行业专用模板!一、为什么你的VLOOKUP总报错?血泪大数据...
- Vlooup公式,2种模糊查找匹配,1分钟学会
-
工作中,VLOOKUP公式使用频率是很高的,用来各种查找匹配问题今天我们分享两种模糊查找匹配问题,一种是文本的模糊查找匹配,一种是数字的模糊查找匹配问题1、文本模糊查找匹配使用模拟数据举个例子,原始数...
- 与vlookup功能相似的函数,照样搞定表格数据查询,简单还实用
-
在日常表格数据处理工作,说到数据查询,很多小伙伴首先想到的是Vlookup函数,老师的教程中也多次讲到Vlookup函数的用法和实例。其实在Excel中还有其他的数据查询函数公式或技巧,今天我们先来学...
- 别再折腾VLOOKUP了!DGET逆向查找10秒通关,小白必看
-
今天要掀翻一个“过气网红”——VLOOKUP!你是不是也经历过这些崩溃瞬间:逆向查找要交换列顺序,复制粘贴到手软!多条件查找要嵌套MATCH,公式长到怀疑人生!别忍了!今天教你用DGET函数一键封...
- 职场新人必学!VLOOKUP函数10分钟速成指南
-
正文:"今天来讲解办公人入职期初函数VLOOKUP,这是所有职场人最重要也是最基础的技能。掌握它,90%的数据查找再不用求人!特别献给刚入职场的你——别让Excel成为加班理由。"——...
- 巧用Vlookup函数揪出“第三者”(vlookup第三个参数是什么)
-
在一张Excel表格的重复记录中,让你快速列出每种不同物品第2次或第n次出现的记录,你会怎么做?Vlookup函数就有这个本事。举例来说,产品或者物流表格中往往会记录有同一货物的多笔数据(如下图的今日...
- 分享12个VLOOKUP超经典用法(vlookup通俗易懂)
-
刚毕业那会,面试的时候经常会被问到会不会用Excel?我就理直气壮地回答:“会啊。”毕竟,简历上可是写着熟练。接着面试官扔出一句“那你会VLOOKUP吗?”我还是会一口咬定:“我会。“其实,我都没用过...
- 查找匹配别只知道Vlookup,Sumifs也可以!
-
工作中遇到查找匹配问题的时候,大家第一反应是不是都想到的Vlookup公式呢,有没有小伙伴们给Sumifs一点点机会的呢,有时候Sumifs比Vlookup更好用1、Vlookup公式举个例子,左边是...
- Excel函数讲解:VLOOKUP函数,轻松玩转数据查找
-
常用函数系列教学:VLOOKUP函数讲解(46)。不懂VLOOKUP函数怎么高效查找数据?闲话少叙直接开讲。基本含义:VLOOKUP函数用于在表格按垂直方向(到)上查找返回行数据。如何使用及注意事项?...
- CHOOSEROWS+CHOOSECOLS原来是一个超级查找函数组合!
-
场景一:要在学生名册中,抽查一名学生成绩。公式:=CHOOSEROWS(A1:D5,2)解析:第一参数A1:D5为数据区域,第二参数2表示提取第2行数据。把数据区域改为A2:D5,结合RANDBETW...
- 数据查询不止有vlookup函数,自定义zlookup函数查询操作更高效
-
Excel数据查询,相信大家首先会想到vlookup函数。毋庸置疑vlookup函数在Excel数据查询中作用是非常的强大。但是它也有一些不能实现的数据查询。如上图所示,我们需要根据人员的出现次数,提...
- 「EXCEL进阶」VLOOKUP函数怎么查询一个值返回多个结果
-
前言:VLOOKUP函数一般一次只能返回一个结果,本例介绍通过辅助列的方法使VLOOKUP函数查询一个值,返回这个值对应的多个结果。使用场景举例:根据表格中同一数值,返回对应值的多个结果。比如这张数据...
- WPS查找能手VLOOKUP函数使用方法讲解
-
各位同学好!今天我们来深度剖析WPS最实用的查找工具——VLOOKUP函数。这个函数能帮你在表格中快速定位并提取所需数据,可以帮你快速核对两批数据差异,还可以合并多个表格的关联信息,甚至可以帮你制作动...
- Excel常用10个函数:跨表查找Vlookup,适用于大数据中查找精确值
-
Hello大家好,我是Office米,今天,我们将和大家一起分享交流,常用的10个函数之一:查找引用函数VLOOKUP。在说VLOOKUP函数之前,我们要先了解,平时Excel日常工作中会遇到哪些问题...
- 掌握了这个套路,无论用 Excel vlookup 函数查找第几次结果都很轻松
-
用vlookup查找默认情况下是一对一出结果,如果要一对多查找,就需要用到各种技巧,具体方法我写过非常多了,可以搜索一下历史记录。只要掌握了今天这个套路,无论你想查找第几次重复值,都易如反掌。案例...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- VLOOKUP的18种高阶用法大公开!99%的人都不知道的神操作!
- Vlooup公式,2种模糊查找匹配,1分钟学会
- 与vlookup功能相似的函数,照样搞定表格数据查询,简单还实用
- 别再折腾VLOOKUP了!DGET逆向查找10秒通关,小白必看
- 职场新人必学!VLOOKUP函数10分钟速成指南
- 巧用Vlookup函数揪出“第三者”(vlookup第三个参数是什么)
- 分享12个VLOOKUP超经典用法(vlookup通俗易懂)
- 查找匹配别只知道Vlookup,Sumifs也可以!
- Excel函数讲解:VLOOKUP函数,轻松玩转数据查找
- CHOOSEROWS+CHOOSECOLS原来是一个超级查找函数组合!
- 标签列表
-
- 正版织梦模板 (30)
- 单片机c语言入门基础知识 (32)
- 手机编程游戏 (29)
- 优秀企业网站模板 (34)
- python编程入门自学书籍 (34)
- phpcms安装 (30)
- 自学excel免费视频教程全集 (36)
- php加密系统源码 (29)
- vlookup函数查找 (30)
- 电脑怎么下载java (32)
- vba编程实例速成150例 (30)
- 函数subtotal的用法 (31)
- java教程txt (32)
- java软件开发面试题 (30)
- sql数据库备份与还原方法 (33)
- 后台管理系统网站模板 (30)
- html表单属性有哪些 (31)
- 初中数学三角函数公式 (32)
- python爬虫教程 (30)
- 三角函数值对照表0到360度 (33)
- oracle数据库下载教程 (31)
- index函数什么意思 (34)
- indirect函数的详细用法 (31)
- excel函数round用法 (32)
- vlookup一对多查询并提取 (35)