Questions about Abstract method and interface method
嗨,我对抽象类和接口有一些疑问
我不会问接口和抽象类之间的区别。我只是在问抽象方法和接口方法的区别抽象方法与接口方法相同。我知道如果我们继承了子类中的接口和抽象类,那么我们必须实现那些边方法,但是我们不能实现非抽象方法。所以
my question is what is the different between abstract method and interface ?
号
和
2". another question is we can partially implement the Non-abstract methods in abstract class , Is it possible to partially implement the abstract method in abstract class ?
号
我也提到了很多网站,但没有人给出第二个问题的解决方案
带代码的问题
这是我的抽象类,有一个抽象方法(XXX),另一个非抽象方法(YYY)和接口方法(XXX)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public abstract class AbstractRam { public abstract int xxx();// What is the difference in interface method ? public int yyy() { return 2; } } public interface InterfaceRam { int xxx();// What is the difference in abstract method ? } |
我在另一个班继承了这两个
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | public class OrdinaryClass : AbstractRam { public OrdinaryClass() { // // TODO: Add constructor logic here // } public override int xxx() { return 1; } } public class OrdinaryClass2 : InterfaceRam { public OrdinaryClass2() { // // TODO: Add constructor logic here // } public int xxx() { return 1; } } |
号
让我看看我的xxx方法,两种方法都是一样的,没有什么区别。
question : Is it have any difference ? if is it same , then which one is the best way ?
号
接口方法是抽象方法。是的,它们与抽象类中的抽象方法相同,因为它们都是抽象的。不过,这里要注意的是,当多态性发挥作用时,如何处理它们。这可以用以下代码来说明:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | interface IA { int xxx(); } abstract class B { public abstract int yyy(); } class C : B, IA { public int xxx() { return 1; } public int yyy() { return 1; } } |
不,不能"部分实现抽象类中的非抽象方法"。通过提供一些具体方法和一些抽象方法,可以部分实现抽象类。但是,不能"部分实现"抽象方法。抽象类中的方法要么是抽象的,要么不是。
在您的代码示例中,
最后我自己找到了答案。
- 抽象方法和接口方法的最大区别是
We can implement the abstract method in inside of the same abstract class , but we can't implement the interface method in inside of the same interface .
号