0
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();
}
}
你的兩個例子似乎沒有關係。當抽象類提供的代碼不是特定於子類實現的代碼時,通常會使用抽象類,但包含隨後在子類中實現的抽象方法。 –
@JonSkeet,說完這一切。也許你應該閱讀一些[Java文檔相關](https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html)和[this](http://stackoverflow.com/questions/) 24626/abstraction-vs-information-hiding-vs-encapsulation)文章。 – aribeiro
注意您不能使用抽象類創建對象。 'new A()'無效,但'new Animal()'有效 – Kachna