A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© lindegen 中级黑马   /  2014-6-20 14:36  /  9047 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 lindegen 于 2014-6-23 17:47 编辑

如题,求大神解惑 举个栗子什么的最喜欢了:loveliness:

7 个回复

正序浏览
简单分析一哈就知道,这个逻辑上就是矛盾的
抽象方法没有具体实现,只是抽象出来作为一个方法放在那里,而运行时会根据子类的不同,实际调用的是子类的方法,这里主要是用到了多态,为的是方便将来维护。
凡是用static修饰的都属于类本身,应该由类来调用,当然在Java中实例也可以调用,对于这一点,其实很多人认为是不妥的,IDE也会给一个警告,告诉你应该用类来调用。
那么问题来了:
假如抽象方法是可以用static修饰的,直接用类来调用了,运行时肯定不走子类了,这样失去了多态的意义,无法进行维护扩展的,再说了,连方法体都木有,怎么执行呢,所以,从语言设计者的角度来看,这种思路就是不通的。
回复 使用道具 举报
就好像接口中的方法,默认是 public abstract 修饰的。抽象类,默认是被 abstract 修饰的 ,前面的权限修饰可以自己定义。所以就不要再想着 在他前面加写别的东西了,都是没有意义的,要不然也不会那样规定。
回复 使用道具 举报
1. 抽象方法不能实现
2.static方法独立于任何实例,因此static方法必须被实现

所以抽象方法不能定义成static
回复 使用道具 举报
抽象主要为了子类复写,静态与子类无关.
回复 使用道具 举报
西门吹风 发表于 2014-6-20 14:53
静态方法主要主为了便于调用,可以不过创建实例对象而通过类来访问
抽象方法没有方法体,直接通过类去调用 ...

除了没有意义之外呢,编译的时候会出错哇
回复 使用道具 举报
一个方法体没内容的方法定义成静态没有意义
回复 使用道具 举报
静态方法主要主为了便于调用,可以不过创建实例对象而通过类来访问
抽象方法没有方法体,直接通过类去调用没有意义

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马