抽象类可以实现接口,那为什么抽象类中可以实现接口中的方法呢?抽象类不是不可以实现抽象方法的吗?
发布网友
发布时间:2022-04-30 18:48
我来回答
共4个回答
热心网友
时间:2023-10-09 14:12
你自己对抽象类和接口的理解可能有点误差
首先,抽象类可以有抽象方法,也可以有实现方法
其次,接口一旦被实现,就必须实现里面所有的方法,因为接口里面的方法全部是抽象的
第三,你用抽象类实现接口,当然要实现里面所有的方法,尽管你在方法体中没有写任何内容
第四,抽象类不能实现抽象方法的结论,是完全不成立的,可能是你在某个方面的记忆出现了误差
热心网友
时间:2023-10-09 14:12
抽象类WindowAdapter中并没有实现方法,只是继承而已,真正的实现是在WindowAdapter的实例WindowImpl 中进行的。就好比把接口拉到抽象类中,一般直接装进去就行,但是接口大小不合适,装不进去,抽象类对接口进行了一些拉伸挤压调整下,把接口弄进去了;这时接口还是没有实现,因为没有被具体类插进去。
热心网友
时间:2023-10-09 14:13
含有抽象方法的必须是抽象类,但是抽象类里面不一定全部是抽象方法,也就是说抽象类里面可以有普通方法,所以抽象类实现接口后就可以也必须实现接口里面的方法
你上面这个例子用到了适配器设计模式,有空的话你也可以看看设计模式的相关内容
热心网友
时间:2023-10-09 14:13
一个抽象类也能从一个接口来实现,这种情况,我们必须为所有的方法提供方法体,这些方法是来自接口
interface IInterface
{
void Method1();
}
abstract class MyAbs : IInterface
{
public void Method1()
{
Console.WriteLine("Method implemented from the IInterface");
}
}
class MyClass : MyAbs//must implement base class abstract method
{
}
class MyClient
{
public static void Main()
{
MyClass mc = new MyClass();
mc.Method1();
}
}