Java 为什么我们要使用抽象类或方法?为什么不重写超类方法?
//如果这可以通过重写来实现,为什么要使用抽象呢Java 为什么我们要使用抽象类或方法?为什么不重写超类方法?,java,abstract,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(); } } 抽象类主要用于绑定子类以给
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();
}
}
抽象类主要用于绑定子类以给出其抽象方法的主体。 其中,与在非抽象类中一样,您没有限定子类以给出其方法体 在B类中,必须给出callme()的主体 何处为
在类Dog中,不强制提供myType()的主体 你的两个例子似乎不相关。抽象类通常用于抽象类提供的代码不是特定于子类实现的,而是包含在子类中实现的抽象方法。@JonSkeet,如是说。也许您应该阅读一些和post.注意,您不能使用抽象类创建对象
new A()
无效,但new Animal()
无效valid@JonSkeet类A{public void callme(){……}}类B扩展了A{public void callme(){……}这是可能的,那么为什么要让类A呢abstract@muhammad:因为类A可能无法实现callme
本身,如果它是一个一般的抽象概念。
class Animal
{
Animal myType()
{
return new Animal();
}
}
class Dog extends Animal
{
Dog myType() //Legal override after Java5 onward
{
return new Dog();
}
}