黑马程序员技术交流社区
标题:
为什么在实现抽象类时添加的方法是静态的
[打印本页]
作者:
陈红建
时间:
2012-8-3 11:18
标题:
为什么在实现抽象类时添加的方法是静态的
abstract class gaga{
abstract void haha();
}
class shabi extends gaga{
void haha()
{
System.out.println("good morning");
}
static void c()//再添加一个方法的时候为啥这个方法必须为抽象的的方法 啊??
{
System.out.println("what are you doing");
}
}
public class good {
public static void main(String [] args)
{
shabi g=new shabi();
shabi.c();
g.haha();
}
}
作者:
程宏志
时间:
2012-8-3 12:23
楼主,你的程序我运行没有问题,其中static void c()//再添加一个方法的时候为啥这个方法必须为抽象的的方法 啊??其实这句话是不用被定义为抽象方法的,因为父类gaga中只有一个静态方法,而你在子类中已经将其覆盖重写了。
关于继承抽象类的使用,
1.子类必须将父类中的方法覆盖重写
2.抽象类中可以没有抽象方法,但存在抽象方法的类必须是抽象类。
这两点希望楼主记住,还有楼主的书写格式应该规范下!
作者:
李东升
时间:
2012-8-3 13:09
能吐槽下你的类名么{:soso_e146:}
static void c()//再添加一个方法的时候为啥这个方法必须为抽象的的方法 啊??
{
System.out.println("what are you doing");
}
这个方法不是抽象的完全没问题的说。
一个类继承自抽象类,则该类必须重写父类的所有抽象方法,否则,该类将保留父类的抽象方法,本身就会变成抽象类,但是你的类已经复写了父类的所有方法,也就不会变成抽象类。既然不是抽象类,里面肯定没有抽象方法。而且如果c()方法是抽象的,那么在main()方法中的实例化这个类就会出错、
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2