为什么我们使用抽象类或方法为什么不只是覆盖超类方法?

时间:2016-02-27 09:58:45

标签: java abstract

    abstract class A
{
 abstract void callme(); 
}
class B extends A
{
 void callme()
 {
  System.out.println("this is callme."); 
 }
 public static void main(String[] args)
 {
  B b=new B();
  b.callme();
 }
}

//如果可以通过覆盖为什么使用抽象来完成

 class Animal
{
 Animal myType()
 {
  return new Animal();
 }
}

class Dog extends Animal
{
 Dog myType()     //Legal override after Java5 onward
 {
  return new Dog();
 }
}

1 个答案:

答案 0 :(得分:0)

抽象类主要用于绑定子类以赋予其抽象方法的主体。 在非抽象类中,你没有绑定子类来赋予它的方法体。

在B类中,它必须给出callme()的主体;

其中

在类Dog中,它不是强制赋予myType()的主体;