Java(十二)抽象类

抽象类

刚刚我们学习了final关键字,而abstract修饰的则正好与final关键字修饰的相反,如果说final关键字代表的意思是:'我已经很完美了,无需再管我了';那么abstract关键字则代表着:'我还是个半成品,你得帮我完成啊!';

也就是说如果一个类中有些方法无法实现或者没有意义,可以将方法定义为抽象方法。类定义为抽象类。这样在抽象类中只提供公共代码,具体的实现强行交给子类去做。

比如说,我现在要定义一个Person类,它有一个打招呼的方法,对于不同的人来说,打招呼的方法也会不同,比如中国人会说:"你好!",而美国人则会说:"hello!";所以Person父类实现这个方法是没有意义的,就可以将这个方法定义为抽象方法,将这个类定义为抽象类

java 复制代码
abstract class Person{
    public abstract void greet();
}

class Chinese extends Person{
    @Override
    public void greet(){
        System.out.println("你好!");
    }
}

class American extends Person{
    @Override
    public void greet(){
        System.out.println("hello!");
    }
}
相关推荐
xieliyu.3 小时前
Java算法精讲:双指针(三)
java·开发语言·算法
明夜之约4 小时前
Spring Boot 自动装配源码
java·spring boot·后端
Leaton Lee4 小时前
Spring Boot分层架构详解:从Controller到Service再到Mapper的完整流程
java·spring boot·后端·架构
Jinkxs4 小时前
Resilience4j- 与 Spring Boot 快速集成:自动配置与基础注解使用
java·spring boot·后端
辣机小司4 小时前
【踩坑记录:Spring Boot 配置文件读取值不一致?警惕 YAML 的“八进制陷阱”与 SnakeYAML 版本之谜】
java·spring boot·后端·yaml·踩坑记录
CryptoPP4 小时前
快速对接东京证券交易所API数据:实战指南与代码示例
开发语言·人工智能·windows·python·信息可视化·区块链
ZC跨境爬虫4 小时前
跟着 MDN 学JavaScript day_7:数学运算与逻辑判断实战测试
开发语言·前端·javascript·学习·ecmascript
fangdengfu1235 小时前
ES分析系统各个服务日志占用量
java·前端·elasticsearch
云烟成雨TD5 小时前
Spring AI 1.x 系列【51】可观测性技术选型
java·人工智能·spring
星越华夏5 小时前
ESP32-CAM图像传输项目说明文档
java·后端·struts·esp32