Java第八天,抽象的概念是什么?如何完成抽象类的实现?
2024-10-08 23:54:54
抽象
面向对象编程中,抽象是一个很重要的概念,那么抽象有什么需要注意的地方呢?请熟记以下知识点。
- 如果父类当中的方法不确定如何进行方法体的实现,则这个方法就是抽象方法。
- 抽象方法只需要在方法前面加上abstract关键字。然后不需要写方法体(去掉大括号即可)。
- 抽象方法所在的类,必须为抽象类才行。
- 抽象类只需要在类名前面写上abstract关键字即可。
- 抽象类中可以定义普通成员方法。
- 不可以直接创建抽象类对象。
- 必须有继承抽象类的子类,且子类中必须实现父类中的所有抽象方法(除非子类也是抽象类),且必须去掉abstract关键字,继而实现方法体。
- 子类实现抽象类的抽象方法本质上是覆盖重写,所以可以并且建议写上 @Override 。
- 抽象类中可以有构造方法,是用来初始化父类成员使用的。
- 抽象类中不一定有抽象方法,但是有抽象方法的类必定是抽象类。
- 没有抽象方法的抽象类也不可以直接new对象。
代码:
父类:
public abstract class Animal {
public static int id = 0;
public int age;
public String name;
public Animal(int age,String name){
this.age = age;
this.name = name;
id++;
drink();
}
public abstract void eat();
public void drink(){
System.out.println(age + "岁的" + this.name + "喝水");
}
}
子类:
public class Dog extends Animal {
public Dog(int age,String name){
super(age,name);
}
@Override
public void eat(){
System.out.println(super.age + "岁的" + super.name + "吃骨头");
}
}
运行代码:
public class Demo {
public static void main(String[] args) {
Dog dog = new Dog(3,"二哈");
dog.eat();
}
}
最新文章
- IBatis存储过程返回值
- oracle存储过程实现根据已有数据批量更新另一批数据
- linux一些常用命令
- 渗透测试常规思路分析-FREEBUF
- [Machine Learning]k-NN
- jquery,返回到顶部按钮
- ImageView 设置OnTouchListener
- POJ 2455 Secret Milking Machine(搜索-二分,网络流-最大流)
- QT第一天学习
- 无需Get更多技能,快速打造一个可持久化的任务调度
- 深入理解css优先级
- React 实现一个时钟
- Ajax 请求头中常见content-type
- python之路--迭代器和生成器
- gitlab 可以上传代码,但是 不能 上传 tag 问题
- C#内置泛型委托:Func委托
- 本地PC安装Centos 6.5 操作手册及遇到的问题
- java文档打包成压缩包并且下载
- Tomcat版本历史
- Bytes to be written to the stream exceed the Content-Length bytes size specified 解决方法
热门文章
- 结题报告--洛谷P3915
- 解决QQ“抱歉,无法发起临时会话,您可以 添加对方为好友以发送消息”
- golang socket编程 net.Conn IO.EOF解读
- 曹工说Spring Boot源码(24)-- Spring注解扫描的瑞士军刀,asm技术实战(上)
- ThinkPHP5.0 漏洞测试
- 内置函数---filter和map
- java物流查询接口测试代码-快递100
- 强化学习之四:基于策略的Agents (Policy-based Agents)
- 硬货 | 手把手带你构建视频分类模型(附Python演练))
- jmeter4.0介绍一