为什么Java抽象类的方法必须加大括号?我写错了吗?

第三行的大括号去掉后会报错,如图代码:abstractclassAnimal//抽象类{publicvoidcry(){};//【代码1】定义public类型无返回值的抽... 第三行的大括号去掉后会报错,如图代码:abstract class Animal //抽象类{ public void cry(){}; //【代码 1】定义 public 类型无返回值的抽象方法 cry() public void eat(){}; //【代码 2】定义 public 类型无返回值的抽象方法 eat()}class Cat extends Animal{ public void cry() { System.out.println("喵星人"); } public void eat() { System.out.println("猫吃鱼"); }}class Dog extends Animal{ public void cry() { System.out.println("汪星人"); } public void eat() { System.out.println("狗吃肉"); }} //【代码块 3】同 Cat 类,定义 Dog 类继承 Animal 类,并重写Dog 类的所有抽象方法public class Test1{ public static void main(String[] args) { Animal a; //【代码 4】定义抽象类 Animal 的引用变量 a a = new Cat(); //【代码 5】创建一个 Cat 类的对象赋给 a a.cry(); //【代码 6】调用 a 的cry 方法 a.eat(); //【代码 7】调用 a 的 eat 方法 a = new Dog(); //【代码 8】创建一个Dog 类的对象赋给a a.cry(); //【代码 9】调用 a 的cry 方法 a.eat(); //【代码 10】调用 a 的eat 方法 }} 展开
 我来答
WMYUOM
2019-06-06 · TA获得超过350个赞
知道小有建树答主
回答量:435
采纳率:78%
帮助的人:211万
展开全部

抽象类中可以有抽象方法,也可以有非抽象方法。

抽象方法必须有abstract修饰,且不能有方法体{},而是用;代替{}

abstract void eat();//这是抽象方法

非抽象方法不能有abstract修饰,且必须有方法体{}

void eat(){}//这是非抽象方法
追问
懂了,谢谢!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式