面向对象——补充:抽象类(目前非重点)
抽象类(非重点)
- 抽象类总结规定
一个类中如果包含抽象方法,这个类应该用abstract关键字声明为抽象类。
意义:
1,为子类提供一个公共的类型;
2,封装子类中重复内容(成员变量和方法);
3,定义有抽象方法,子类虽然有不同的实现,但该方法的定义是一致的。
注意点:
-
抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。
-
抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
-
抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。
-
构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。
-
抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。
- 由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。
- abstract修饰的类就是抽象类,修饰的方法就是抽象方法
- 抽象类中可以有普通方法,但有抽象方法时一定要声明为抽象类
- 抽象类不能使用new来创建对象,它是用来让子类继承的
- 抽象方法只有方法的声明,没有实现,让其子类实现
- 子类继承抽象类,必须实现抽象类的所有方法, 否则该子类也要声明为抽象类
package com.oop.demo08;
//abstract 抽象类 java的类是单继承,但是接口可以多继承
public abstract class Action {
//约束~让别人帮忙实现
//abstract 抽象方法,只有方法名字,没有方法的实现!
public abstract void doSomething();
}
package com.oop.demo08;
//子类在继承了抽象类的所有方法时,必须对抽象类方法进行实现,除非
public class A extends Action{
@Override
public void doSomething() {
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏