抽象
1.1抽象方法
Java中使用关键字abstract
来声明抽象方法和抽象类。
abstract class 类名字 {
public abstract void 方法名();
}
1.2抽象类注意事项(5点)
-
一个抽象类里可以有抽象方法,也可以没有抽象方法,不建议抽象类里不定义任何抽象方法的行为。
abstract class Test {
public void test(){}
} -
如果一个类里有了抽象方法,那么这个类必须要声明为抽象类。
abstract class Test{
public abstract void demo(); // 只要有了抽象方法,那么这个类必须要抽象
} -
抽象类不能直接创建对象,如果一定要创建,需要实现(重写)抽象方法。
class Test {
public static void main(String []args) {
// Animal animal = new Animal(); 报错,抽象类不能直接创建对象
// 如果要创建对象,必须要实现抽象类里的所有抽象方法
Animal animal = new Animal(){
public void shout(){
System.out.println("动物正在叫");
}
};
}
}
abstract class Animal{
public abstract void shout();
} -
通常情况下,我们会创建一个继承抽象类的子类,在子类里实现所有的抽象方法,然后去创建子类对象。
public class Test {
public static void main(String[] args) {
Dog d = new Dog();
}
}
abstract class Animal {
public abstract void shout();
public abstract void eat();
}
class Dog extends Animal {
-
如果子类没有实现父类所有的抽象方法,那么这个子类也需要被定义成为抽象的。
abstract class Animal {
public abstract void shout();
public abstract void eat();
}
abstract class Dog extends Animal {
1.3abstrct关键字冲突
-
abstract和final不能一起修饰方法和类
-
abstract和static不能一起修饰方法
-
abstract和native不能一起修饰方法
-
abstract和private不能一起修饰
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)