Java中的抽象方法是什么,怎么用?

在这里插入图片描述
抽象方法…
听着就很抽象的样子
脑中不禁浮现出了各种抽象画的图像
缩在被窝里打起了退堂鼓

但是!
Java中的抽象没那么难
在这里插入图片描述
抽象方法是个啥?
通俗来说
就是不知道该咋做的方法
先别晕
我给你举个小栗子

我们创建一个类,什么类呢?病人类
病人就是生了病的人
生病的人要做什么呢?
得吃药
在这里插入图片描述
所以对于病人类来说
吃药就是一个方法

但是!
要用什么药?
他是该吃开塞露呢?
还是该喝风油精呢?

我们并不确定
这要看病人是哪儿有病

所以我们不知道这个方法具体要如何执行,就叫做抽象方法

概念搞清楚了
我们要如何定义抽象方法呢?
其实也简单
普通方法不加花括号,前面再加个abstract关键字,以分号结束
比如:

public abstract void tackMedicine();

写上去之后,你会惊奇的发现,报错了!!
为什么呢?
因为抽象方法只能在抽象类中使用
所以你的类定义还要稍稍改一下:同样也加一个abstract
写完后就是这个亚子↓

public abstract class Patients{
    
    
	public abstract void tackMedicine();
}

ps:在抽象类中定义普通方法是完全没有问题的哟~

现在定义好抽象类和抽象方法了,我们该怎么用呢?
如果你像以前一样,直接暴力new一个该类的对象,就会被打pp 报错哟
因为我们的抽象类不能直接定义其对象

那我们该怎么用呢?
我们可以创建一个新的子类来继承我们的抽象父类
像这样:

public class ColdPtients extends Patients{
    
    

}

ColdPtients是感冒病人的意思,可不是冷藏病人哟

写完之后,你会惊奇的发现:又报错了!!!
在这里插入图片描述
停停停!
别打了别打了,再打孩子就傻了!
我们就差最后一步啦~

我们需要在子类中再写一遍父类中的抽象方法,并去掉abstract关键字,因为我们的子类已经具体了,不再需要抽象的方法。

public class ColdPtients extends Patients{
    
    
	public void tackMedicine(){
    
    
		System.out.println("来点儿清凉油");
	}
}

好啦,我们现在就可以开始创建子类对象进行使用啦:

public static void main(String[] args){
    
    
	ColdPatients coldPatient = new ColdPatients();
}

大功告成~
回顾一下:我们先创建了病人抽象类,在里面写了吃药这一抽象方法,然后用具体的子类来继承父类,并把父类中的抽象方法去掉abstract进行使用,我们就成功地给感冒的人开了一瓶清凉油。

我是被窝里的小何
祝大家生活愉快哟!

猜你喜欢

转载自blog.csdn.net/weixin_51517370/article/details/115264737