黑马程序员技术交流社区

标题: abstract问题 [打印本页]

作者: 唐溪永    时间: 2012-2-28 10:43
标题: abstract问题
abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
作者: 闫玉泉    时间: 2012-2-29 15:25
都不能用,很好理解的,static 使类不用实例化就可以直接由类调用,我们都知道abstract 是只有方法没有实现的细节的。所以static不能用在abstract。
2.synchronized 是线程锁用来实现将这个方法实现的细节同步。但是abstract没有方法实现如何同步,所以不能用
3.native 与abstract 很类似,都是只有方法,没有实现细节。只是一个是交给本地系统。一个是交给子类来实现。如果用abstract native method 那个这个方法是由子类实现呢还是本地系统实现呢? 样不就冲突了吗?
作者: 胡军喜    时间: 2012-2-29 16:19
不能用,因为static表示是静态的,无需对象就可以调用,而抽象类必须有子类才能用,所以不能用static。native和synchronized也是同样的道理!
作者: 陈斌    时间: 2012-2-29 19:43
都不能, abstract需要重载,static为类方法,没有重载一说。

    abstract为没有实现的方法,native为本机实现的方法,自相矛盾。

    abstract方法没有实现,也不可能实际调用抽象方法,没有必要synchronized修饰,当然子类可以根据需要同步该方法。

作者: 陆泽峰    时间: 2012-2-29 19:59
abstract的method 不可以是static的,因为抽象的方法是要被子类实现的        native方法表示该方法要用另外一种依赖平台的编程语言实现的,不存在着被子类实现的问题,所以,它也不能是抽象的,不能与abstract混用;
关于synchronized与abstract合用的问题,我觉得也不行,因为在我几年的学习和开发中,从来没见到过这种情况,并且我觉得synchronized应该是作用在一个具体的方法上才有意义。而且,方法上的synchronized同步所使用的同步锁对象是this,而抽象方法上无法确定this是什么。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2