![](/img/trans.png)
[英]Difference between abstract method of abstract class and abstract method of interface in java
[英]What's the difference between public method and abstract method in Interface?
考慮以下接口:
public interface MyInterface {
public void func1();
public void func2();
abstract public void func3();
}
和類MyClass:
public class MyClass implements MyInterface{
@Override
public void func1() {
// TODO Auto-generated method stub
}
@Override
public void func2() {
// TODO Auto-generated method stub
}
@Override
public void func3() {
// TODO Auto-generated method stub
}
}
func2()
和func3()
什么區別?
當我想實現MyClass
,我必須同時實現這兩種方法,因此,如果我在接口中編寫public
或abstract public
似乎沒有什么區別。
謝謝
接口主體中的每個方法聲明都是隱式抽象的 ,因此其主體始終由分號(而不是塊)表示。
你問
func2()和func3()有什么區別?
除了它們是不同的方法外,它們的修飾符是相同的。
在某種程度上,我們正在比較這個問題上的蘋果和橙子。 對於Java語言的新手,首先需要進行一些說明:
接口:
就是說, 從 Java 8開始 ,我們現在有了所謂的“ 默認方法” 。 這些方法是完全實現的方法,確實需要使用default
關鍵字進行顯式聲明。
就是說, abstract
關鍵字永遠不會在接口上下文中起作用。
抽象方法:
抽象方法僅屬於抽象類。
抽象類可能包含完全實現的方法以及抽象方法。 但是,一個類中僅一個抽象方法就足以使其成為抽象類-也就是說,該類必須顯式聲明為抽象類。
抽象類是被聲明為抽象的類-它可能包含也可能不包含抽象方法。 抽象類不能實例化,但是可以被子類化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.