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

啥时候用抽象类,啥时候用接口【示例】

好的,通过具体示例来理解这个区别:

抽象类示例 - "是什么"关系

// 抽象类:定义"动物是什么"的家族共性
public abstract class Animal {private String name;// 动物共有的具体属性public String getName() { return name; }// 动物共有的具体行为public void breathe() { System.out.println("呼吸中..."); }// 抽象方法:子类必须实现,但每个动物叫法不同public abstract void makeSound();
}// 具体动物:猫"是一种"动物
public class Cat extends Animal {@Overridepublic void makeSound() {System.out.println("喵喵喵");}
}// 具体动物:狗"是一种"动物  
public class Dog extends Animal {@Overridepublic void makeSound() {System.out.println("汪汪汪");}
}

接口示例 - "能做什么"关系

// 接口:定义"能飞"的能力(跨物种)
public interface Flyable {void fly();
}// 接口:定义"能游泳"的能力(跨物种)
public interface Swimmable {void swim();
}// 不同的类实现相同接口
public class Bird implements Flyable {@Overridepublic void fly() {System.out.println("鸟用翅膀飞");}
}public class Airplane implements Flyable {@Overridepublic void fly() {System.out.println("飞机用引擎飞");}
}public class Duck extends Animal implements Flyable, Swimmable {@Overridepublic void makeSound() {System.out.println("嘎嘎嘎");}@Overridepublic void fly() {System.out.println("鸭子短距离飞行");}@Overridepublic void swim() {System.out.println("鸭子游泳");}
}

使用场景

public class Test {public static void main(String[] args) {// 抽象类:处理家族关系Animal cat = new Cat();Animal dog = new Dog();cat.makeSound(); // 喵喵喵dog.makeSound(); // 汪汪汪// 接口:处理能力行为Flyable[] flyingThings = {new Bird(), new Airplane(), new Duck()};for (Flyable thing : flyingThings) {thing.fly(); // 不同事物,同样的飞行能力}}
}

一句话总结

  • 抽象类:猫、狗都是"动物"(是什么)
  • 接口:鸟、飞机、鸭子都能"飞"(能做什么)
http://www.dtcms.com/a/566419.html

相关文章:

  • GB/T 4857.3:运输包装静载堆码试验要点
  • 【Windows】Windows 11 添加IE浏览器 解决浏览器兼容问题
  • 高职大数据技术专业需要的基础
  • 织梦网站建设asp.net 微信网站
  • 时尚网站电子商城网站开发
  • Spark专有名词
  • wordpress 创建子主题外链seo招聘
  • 广告公司网站设计策划设计ui是什么意思
  • 怎么在Adobe Photoshop中调用banana与flux、即梦4.0等AI图像模型?AI+工作流已成为平面设计师必备技术手段!不用等着被淘汰吧!
  • 免费的网站域名查询565wccwordpress交互式地图
  • 先建网站还是先做app好特产网站源码
  • 轻云服务器 多个网站wordpress表白模板下载
  • 腾冲做兼职的网站专业企业展厅设计公司
  • 前端导出大量数据到PDF方案
  • 全自动分液站在实验室自动化中的关键作用与性能解析
  • C2S-Scale 27B 模型: AI 解码 “细胞语言“,发现癌症疗法新途径
  • 学做网站需要文化嘛seo网站优化推广教程
  • 电介质的主要电气特性:液体电介质的损耗--与温度和频率的关系
  • 求最大连续bit数
  • C++入门(一)(竞赛)
  • 差分隐私随机梯度下降(DP-SGD)详解
  • AUTOSAR 通信栈深度解析:PduR 与 CanTp 的交互机制(图文详解)
  • 大学网站策划方案网站制作费用及后期运营
  • 告别ESLint:在Vue 3项目中拥抱编码自由
  • 网站开发人员 平均工资动易网站管理系统教程
  • 一款基于 .NET WinForm 开源、轻量且功能强大的节点编辑器,采用纯 GDI+ 绘制无任何依赖库仅仅100+Kb
  • 买域名不建网站html5 做手机网站
  • ONNX Runtime CUDA版本兼容性指南
  • SSM图书馆自习室占座选座zg09h(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 与企业网站做接口在线培训方案设计