黑马程序员技术交流社区

标题: java中静态的和抽象的怎么就不能修饰一个方法呢? [打印本页]

作者: 心弦上的景致    时间: 2013-3-16 14:56
标题: java中静态的和抽象的怎么就不能修饰一个方法呢?
代码和理论帮我分析一下  
作者: 张宝    时间: 2013-3-16 15:12
abstract class Father
{
        abstract static void show();
}
--------------------------------------------------------
---------- javac ----------
Father.java:10: 错误: 非法的修饰符组合: abstract和static
        abstract static void show();
                             ^
1 个错误

输出完成 (耗时 0 秒) - 正常终止


所以static与abstract不可以修饰一个方法  static修饰的方法可以通过类名调用。
作者: 唐永康    时间: 2013-3-16 16:59
java中静态的和抽象的怎么就不能修饰一个方法呢?


你可以这样理解,

abstract class Cat
{
            abstract void show();
}

首先,如果一个类里面有抽象方法,那么这个类也必须被加上申明为抽象类,这时,这个抽象类就不能new  对象了。而
static 修饰的方法可以通过new 对象和类名来调用,但这里因为不能new 对象,所以,这时就产生了矛盾,从这个方面理解,static 与abstrac
是不能同时修饰同一个方法的。


作者: 陈丽莉    时间: 2013-3-16 17:04
若还有问题,请继续追问;没问题的话,请将帖子分类改成【已解决】~




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