Java:抽象类
抽象类
1.抽象类概述:在Java中,一个没有方法体( { }这个就是方法体)的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象。
无方法体–>抽象方法
有抽象方法- ->抽象类
2.一个方法,要么有方法体要么就定义成抽象的 。抽象方法只能定义在抽象类内,如果类不为抽象类就要修改为抽象类,抽象类是可以有非抽象方法的,抽象类也可以没有抽象方法(但这个没什么意义)。
3.抽象类不能直接创建对象,参照多态的方法创建对象:
定义一个子类,继承抽象类,在子类中对抽象类的抽象方法重写就行了。
抽象类名 对象名=new 子类名()
Animals a=new Cat();
Animals是抽象类,Cat是子类
继承抽象类的子类要对抽象类的所以抽象方法进行重写
但如果你不想重写抽象方法,继承的子类也得是个抽象类,这样后面对这个抽象子类进行继承的时候再对子类的子类进行抽象方法的重写就行。
4.方法调用
在多态那边我们说到编译看左边,执行看右边,现在我们针对具体案例进行说明:
我们创建了一个Animals类型的对象,调用它的eat方法,eat方法虽然是一个抽象方法,没有方法体,但是在子类中重写了,编译看左边,Animals有eat这个方法,执行看右边,子类对eat方法重写了。
调用sleep方法,编译看左边,执行看右边,虽然子类中没有sleep方法,但sleep方法是非抽象类的,被子类继承,所以正常执行。
public class Demo {
public static void main(String[] args) {
Animals cat=new Cat();
cat.eat();
cat.sleep();
}
}
public class Cat extends Animals{
@Override
public void eat() {
System.out.println("猫吃鱼");
}
}
public abstract class Animals {
public abstract void eat();
public void sleep(){
System.out.println("睡觉");
}
}
猫吃鱼
睡觉
关于抽象类
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!