-6
A
回答
10
具有抽象方法的抽象類。
該方法也用abstract
標記,並沒有正文。
public abstract class A {
public abstract void method();
}
具體化在擴展抽象類A
類B
。此外,該方法丟失關鍵字abstract
並獲取正文。
public class B extends A {
@Override
public void method() {
System.out.println("Hello");
}
}
+0
這裏是非抽象方法重寫抽象方法,所以我對它有點混淆。 – user2151689
+0
是的,'抽象'是一種「符號」,這種方法必須在未來的某些方法中被覆蓋。覆蓋的方法必須具有相同的方法簽名,但是會丟失「abstract」關鍵字。 – darijan
2
只需提供該方法的實現,爲其提供一個正文。
public abstract class Base {
public abstract void someMethod(); // no implementation here
}
public class Sub extends Base {
@Override
public void someMethod() {
//It is Overridden
}
}
1
當您在子類中實現超類方法時,它將被覆蓋。所以,即使超類的方法是抽象的,如果你在子類中實現它,它會覆蓋它。
所以,
public class SuperClass{
public abstract void someMethod();
}
public class SubClass{
public void someMethod(){
System.out.println("subclass method");
}
}
1
Foo.java
public abstract class Foo {
public abstract void doStuff();
}
Bar.java
public class Bar extends Foo {
@Override
public void doStuff() {
// doStuff
}
}
1
抽象方法可以被覆蓋,就像覆蓋其他正常的方法,通過提供一個實現。
1
這是與任何其他方法重寫:
public abstract class AbstractClass {
public abstract void abstractMethod();
}
...
public class ConcreteClass {
@Override
public void abstractMethod() {
....
}
}
2
public abstract class A {
public abstract String getValue();
}
public class B extends A {
@Override
public String getValue(){
return "I'm Overriden";
}
}
這就像在其他任何類相同。
2
public abstract class BaseClass {
public abstract void doSomething();
}
public class ConcreteClass extends BaseClass {
@Override
public void doSomething() {
System.out.println("Hi!");
}
}
public class AnotherConcreteClass extends BaseClass {
@Override
public void doSomething() {
System.out.println("Hello!");
}
}
是得到執行將取決於運行時類型你是在調用時doSomething
對象的doSomething
方法的實現。
相關問題
- 1. 抽象方法重寫抽象方法
- 2. Java的抽象方法不重寫
- 3. 重寫抽象方法TimerTask.Run()
- 4. 的Java 7,但不是Java 6:「不是抽象的,不重寫抽象方法」
- 5. 類不抽象,也不重寫java.util.timertask中的抽象方法run()
- 6. CircleObject不是抽象並且在圖不重寫抽象方法
- 7. Java:重寫子類中的抽象方法
- 8. C++:用抽象方法創建抽象類並重寫子類中的方法
- 9. 重寫抽象方法比較()
- 10. 如何利用抽象方法重寫?
- 11. 重寫抽象方法,而使用
- 12. 「不是抽象的,不重寫抽象方法的Java」使用裝飾模式
- 13. 不是抽象的,不重寫抽象方法錯誤
- 14. 是不是抽象的,不重寫抽象方法行爲
- 15. StatusBar不抽象,不重寫抽象方法onPreferenceChange
- 16. 爲什麼我可以抽象重寫一個抽象方法?
- 17. Midlet不是抽象的,也不重寫抽象方法focusLost(com.sun.lwuit.Component)
- 18. 錯誤:類不是抽象的,不重寫抽象方法
- 19. 匿名類不抽象,也不重寫抽象方法
- 20. 重寫方法和從抽象類重載方法
- 21. Java的抽象方法提高我重寫
- 22. 在Java中的重寫抽象方法中的代碼問題枚舉
- 23. 在java中實現抽象方法/類
- 24. 如何在抽象方法中編寫GET函數? Java
- 25. 在Scala中重寫特徵和抽象方法
- 26. Java抽象方法簽名
- 27. Double不是抽象的,並且不重寫ListInterface中的抽象方法getNext()?
- 28. LoginActivity.AttemptLogin不抽象,也不重寫AsyncTask中的抽象方法doInBackground(Object ...)
- 29. 不抽象和不重寫抽象方法onCreateViewHolder使用recyclerView在android
- 30. 抽象方法優於方法重寫的好處
在問這樣的基本問題之前,你應該已經完成了教程http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html – AurA
http://stackoverflow.com/questions/1005898/java -hould-i-add-an-override-annotation-when-implementation-abstract-methods – sanbhat