news 2026/5/11 21:46:44

题目五:抽象类 + 接口 混合实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
题目五:抽象类 + 接口 混合实现

编程要求

  1. 抽象类Machine:抽象方法work(),普通方法start()
  2. 接口Clean:抽象方法clean()
  3. Robot继承抽象类 Machine + 实现接口 Clean
  4. 实现所有未实现的方法;
  5. 测试创建机器人对象,调用所有方法。

打印结果:

机器启动

机器人工作

机器人清洁

思路分析:

1. 抽象类 Machine

abstract class Machine { public abstract void work(); // 抽象方法 public void start() { // 普通方法 System.out.println("机器启动"); } }

分析:

  • abstract class:声明这是抽象类,不能直接创建对象,只能被继承。
  • abstract void work()
    • 抽象方法没有方法体
    • 作用:强制子类必须实现这个方法
  • start()
    • 普通方法,有具体实现;
    • 子类可以直接继承使用,不用重写。

2. 接口 Clean

interface Clean { void clean(); }

分析:

  • interface:接口,只有方法声明,没有实现。
  • 接口里的方法默认是:public abstract,所以不用写修饰符。
  • 作用:规定实现类必须拥有 clean () 功能

3. Robot 类:继承 + 实现

class Robot extends Machine implements Clean { @Override public void work() { System.out.println("机器人工作"); } @Override public void clean() { System.out.println("机器人清洁"); } }

分析:

  • extends Machine
    • 继承抽象类;
    • 必须实现抽象方法 work (),否则报错。
  • implements Clean
    • 实现接口;
    • 必须实现接口方法 clean (),否则报错。
  • @Override
    • 标记:这是重写 / 实现的方法;
    • 便于检查语法错误。

4. 测试类 main 方法

public class Test { public static void main(String[] args) { Robot robot = new Robot(); robot.start(); robot.work(); robot.clean(); } }

分析:

  • Robot robot = new Robot():创建机器人对象。
  • robot.start()
    • 来自Machine 抽象类的普通方法
    • 输出:机器启动
  • robot.work()
    • Robot实现的抽象方法
    • 输出:机器人工作
  • robot.clean()
    • Robot实现的接口方法
    • 输出:机器人清洁

题目六:综合题

考察知识点staticextends、多态、final、抽象类、接口编程要求

  1. 定义接口Chargeable(充电):方法charge()
  2. 定义抽象类ElectronicProduct(电子产品):
    • final常量PRODUCER(生产商);
    • 静态变量total(统计产品总数);
    • 抽象方法use()
  1. 子类Phone继承抽象类 + 实现充电接口;
  2. 重写所有方法,构造方法中统计产品数量;
  3. 多态创建手机对象,调用充电、使用方法;
  4. 打印产品总数和不可修改的生产商常量。

打印结果:

使用手机上网

手机充电中

生产商:国产科技

产品总数:2

思路分析:

1. 接口Chargeable

java

运行

interface Chargeable { void charge(); }
  • 接口中方法默认public abstract,不用手动写;
  • 作用:定义充电规范,只要实现这个接口,就必须重写charge()方法。

2. 抽象类ElectronicProduct

abstract class ElectronicProduct { public static final String PRODUCER = "国产科技"; public static int total = 0; public abstract void use(); }
  1. abstract class抽象类:
    • 不能 new 实例,只能被继承;
    • 包含抽象方法的类,必须是抽象类。
  2. public static final String PRODUCER
    • final:常量,赋值后不能修改
    • static:属于类,不属于单个对象,全局唯一;
    • 符合题目:不可修改的生产商常量。
  3. public static int total
    • static静态变量:所有对象共享同一个变量
    • 用来统计创建了多少个电子产品对象。
  4. public abstract void use()
    • 抽象方法:没有方法体
    • 强制子类必须重写实现。

3. 子类Phone

class Phone extends ElectronicProduct implements Chargeable
  • 语法规则:先 extends 继承抽象类,再 implements 实现接口
  • 必须同时完成:重写抽象类抽象方法 + 实现接口所有方法,否则编译报错。
构造方
public Phone() { total++; }
  • 每次new Phone()创建对象,自动调用构造方法;
  • 静态变量total自增,实现统计产品总数
重写use()
@Override public void use() { System.out.println("使用手机上网"); }
  • 实现抽象类的抽象方法,补齐方法体。
实现charge()
@Override public void charge() { System.out.println("手机充电中"); }
  • 遵守接口规范,实现充电功能。

4. 测试类 & 多态解析

ElectronicProduct p1 = new Phone(); ElectronicProduct p2 = new Phone();
  • 多态核心:父类引用(ElectronicProduct)指向子类对象(Phone)
  • 编译看左边(父类),运行看右边(子类);
  • 创建 2 个对象,构造执行 2 次,total变成 2。
p1.use();
  • 父类有use抽象方法,可直接调用,运行执行子类重写的方法。
((Chargeable)p1).charge();
  • 父类ElectronicProduct没有charge()方法;
  • 必须向下转型为接口类型,才能调用接口独有方法。

5. 常量与静态变量打印

System.out.println("生产商:" + ElectronicProduct.PRODUCER); System.out.println("产品总数:" + ElectronicProduct.total);
  • PRODUCERtotal都是static用类名直接调用,不用对象;
  • final常量无法二次赋值,保证生产商固定不变。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/11 21:46:11

字序生命:为 AGI 装上“安全大脑”与“自知之明”

大模型是右脑,负责广博的感知与表达。字序生命是左脑,负责可靠的认知推理与安全博弈。双脑协同,实现通用人工智能。当前的大语言模型(LLM)知识渊博,但它们就像一个个学富五车却没有“自知之明”的少年。它们…

作者头像 李华
网站建设 2026/5/11 21:45:47

从SPWM到正弦波:剖析开源20kHz恒流信号发生器的硬件闭环设计

1. 从SPWM到正弦波的硬件魔法 第一次拆解这个开源20kHz恒流信号发生器时,我被它的硬件闭环设计惊艳到了——就像发现老式收音机里藏着交响乐团。在智能车竞赛中,赛道电磁线负载变化会导致传统信号源输出波动,而这个设计用纯硬件方案实现了堪比…

作者头像 李华
网站建设 2026/5/11 21:39:40

007、LVGL开发环境搭建(嵌入式平台)

LVGL开发环境搭建(嵌入式平台) 上周帮一个朋友调他的STM32F429板子,LVGL跑起来屏幕一片花,折腾了两天才发现是DMA2D的时钟没开。这种问题在嵌入式平台搭建LVGL环境时太常见了——明明代码逻辑没问题,就是跑不起来。今天把环境搭建的坑都踩一遍,省得你们再走弯路。 硬件…

作者头像 李华
网站建设 2026/5/11 21:38:49

Python实现逼真人类行为模拟:随机延时、自然鼠标轨迹与智能滚动全解析

在自动化测试、数据采集和RPA机器人开发中,一个常见的痛点是如何让程序的行为更像真实人类。过于规律的机器行为很容易被反爬系统识别,也无法准确模拟用户在实际使用中的各种操作习惯。本文将从原理到实战,详细讲解如何用Python实现高度逼真的…

作者头像 李华
网站建设 2026/5/11 21:35:15

Python 后端开发 从零到就业完整教程(2026 企业级完整版)

一、Python 后端是什么 & 能干什么 1.1 核心定位 Python 后端 接口开发 数据库读写 业务逻辑 服务部署 高并发处理。不写页面、专注服务端逻辑,是互联网、物联网、AI 服务、中台系统最主流的技术栈之一。 1.2 就业业务场景前后端分离 RESTful API 接口…

作者头像 李华