java中怎样为抽象的类定义方法的?

java中怎样为抽象的类定义方法的?以下是我的疑问请高手指点importjava.util.Queue;publicclassExample{publicstaticvo... java中怎样为抽象的类定义方法的?以下是我的疑问请高手指点
import java.util.Queue;
public class Example
{
public static void main(String args[])
{Queue b;//因为Queue是抽象的类,不能实例化对象b,不能有b=new Queue;
b.pop()//疑问1抽象的类不是没有方法体的么?2为何可以有方法pop?2没有被实例化为何可以调用pop方法?
}
}
展开
 我来答
十拿九稳year
推荐于2016-10-30 · TA获得超过6134个赞
知道小有建树答主
回答量:661
采纳率:80%
帮助的人:310万
展开全部
抽象类
在Java中当一个类被abstract关键字修饰时,该类就叫抽象类
抽象类是从多个具体类中抽象出来的父类,属于高层次的抽象。

抽象类遵循的原则
(1)抽象类必须使用abstract关键字进行修饰。
(2)抽象类不能被实例化(无法使用new关键字创建对象实例)。
(3)抽象类可以包含属性,方法,构造方法,初始化块,内部类,枚举类。
(4)含有抽象方法的类必须定义成抽象类。
抽象方法
(1)在Java中当一个类的方法被abstract关键字修饰后,该方法就叫抽象方法。
(2)抽象方法所在的类必须定义为抽象类
注意事项
(1)抽象类与抽象方法都必须使用abstract关键字进行修饰,但不能使用abstract关键字修饰属性或局部变量。
浩瀚小青年
推荐于2018-02-13 · 超过17用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:45.6万
展开全部
//看一下下面的代码
public abstract class Gg {

public abstract void test();//abstract 方法不能有方法体

public void mm(){//不是abstract 的方法 可以写方法 体
return;
}
}
因为接口也是属抽象类,俗语是高度抽象 是不能new的
象上面的test()方法一般用作被子类去实现
而mm()方法一般被子类调用
这样是不是抽象类是不是很有用。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
woyaoaiaia
2010-09-04 · TA获得超过764个赞
知道小有建树答主
回答量:479
采纳率:0%
帮助的人:159万
展开全部
在抽象类里定义的抽象方法只有方法头没有方法体,但这个抽象方法如果被多个子类所调用的时候,各子类可以根据各自需要实例化出不同的对象 并且重新定义不同的方法体上去,从而通过它来实现多态。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
可怜蛙蛙
2010-09-03
知道答主
回答量:21
采纳率:0%
帮助的人:14.6万
展开全部
回答1、和C++不同,Java抽象类的方法并不一定没有方法体,只是类用abstract修饰了,不能实例化而已;
2、须用Queue的非抽象子类创建一个实例赋给b,才可以调用pop方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
from_rr
2010-09-03 · TA获得超过1138个赞
知道小有建树答主
回答量:318
采纳率:0%
帮助的人:321万
展开全部
抽象类是可以有具体的实现方法的。这点和接口是很大的不同。
这就决定了抽象类在做一些代理事件时,非常有用。

对于你的2问题。在编译阶段,你的b.pop()是没有语法错误的。但是在运行时会报错的。因为你的b还没有得到实例。也就是说,你没有new。

Queue 的一个实例:java.util.LinkedList
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式