抽象方法能不能直接调用?

publicabstractvoidaddCallback(Callbackcallback);//抽象方法privateSurfaceHoldermHolder;mHo... public abstract void addCallback(Callback callback); //抽象方法
private SurfaceHolder mHolder;
mHolder.addCallback(this);//调用抽象方法

这是为什么?抽象方法也能被直接调用,为什么?
展开
 我来答
阿鑫聊生活
高粉答主

2020-05-15 · 生活知识分享小达人,专注于讲解生活知识。
阿鑫聊生活
采纳数:1217 获赞数:235048

向TA提问 私信TA
展开全部

抽象方法是不能调用的,原因就是抽象方法没有方法体。

当一个方法为抽象方法时,意味着这个方法应该被子类的方法所重写,否则其子类的该方法仍然是abstract的,这个子类由于继承父类,拥有抽象方法,因此它也是抽象类,即声明为abstract。abstract抽象类不能用new实例化对象,abstract方法只允许声明不能实现。

如果一个类中含有abstract方法,那么这个类必须用abstract来修饰,当然abstract类也可以没有abstract方法。 一个抽象类里面没有一个抽象方法可用来禁止产生这种类的对象。

扩展资料:

在interface中所有的方法都是public abstract的,即使你没有申明它是public abstract的。在interface中所有的数据成员都是public static final的,即使你没有申明.但不能是blank final 在编译时候确定的。

在Java,interface的地位和class是一样的。实现interface的类,其interface中所有的方法必须被“实现”,否则这个类成为一个抽象类。Interface可以从多个interface得到继承,但是不能继承类。一个类可以实现多个interface。(摘自CSDN:抽象类,抽象方法和interface,作者:PeakLui)

creazyfire
2013-05-15 · TA获得超过171个赞
知道答主
回答量:55
采纳率:0%
帮助的人:24.7万
展开全部
不能直接调用,需要实现了抽象方法才行。抽象方法只是给机一个写方法的规范
追问
我也是这么认为的,可是我遇到的问题,也就是我提的问题,确实存在,并且能够运行,还没有错,这是为什么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
推荐于2017-09-08 · TA获得超过297个赞
知道小有建树答主
回答量:143
采纳率:0%
帮助的人:67万
展开全部
记住:抽象方法是不能调用的
原因就是抽象方法没有方法体。

但是,在一个类中定义了一个抽象方法,在这个类 或 这个类的子类 中是可以调用的。
为什么可以调用呢?
因为,具有抽象方法的类,一定是一个抽象类,
而抽象类在被继承的时候,必须重写这个抽象类的抽象方法,
而且,抽象类不能实例化,在使用这个抽象类的时候,使用的一定是这个抽象类的子类。
故,你在 抽象类 或 抽象类的子类 中可以使用这个抽象方法,是因为当真正实例化去使用的时候,使用的是子类重写后的实例方法。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-05-15
展开全部
简单地说,JAVA就这么规定的。
追问
你是从哪知道Java是这么规定的?
请详解!!!
3Q
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式