接口调用//接口不能实例化,但可以用继承的类实例化访问
public interface Itest
{
void sayHello();
}
class myItest:Itest
{
public void sayHello()
{
Console.WriteLine("I am Itest");
}
}
myItest one = new myItest;
Itest InterfaceObject = one as Itest;
InterfaceObject.sayHello();//此处调用的是myItest的sayHello函数
抽象类 //虚拟成员和抽象函数不能是私有的private.只能是public 和protected
public abstract class Aclasstest
{
public void sayHello();
protected void sayHello1();
//private void sayHello2();
}
class AclassTest:Aclasstest
{
public override void sayHello()
{
Console.WriteLine("I am public");
}
protected override void sayHello1()
{
Console.WriteLine("I am protected");
}
// public void sayHello2()
//{
//}
}
抽象类在继承类中的实现叫override重载。接口在继承类中的实现叫做函数的实现(换句话说,抽象类函数的实现是继承类函数的重载,接口函数的实现就是继承类的函数的方法体)
即:abstract不允许有方法体,必须被子类override重载。貌似抽象函数只能在抽象类中申明。
虚拟方法visutal,必须申明实现,必须有主体函数。所以抽象类中不可能有虚拟函数。虚拟函数可以被继承类override,不过其它函数(public和protected)何尝不是也可以override,我去。
最后,override相对在abstract的继承类中用的比较多然后是在virsual中还是用的比较多
本文详细解释了接口和抽象类的概念及其使用方式。探讨了接口如何通过继承的类进行实例化并调用方法,以及抽象类中抽象方法与虚拟方法的特点。此外,还对比了接口与抽象类的不同之处。
516

被折叠的 条评论
为什么被折叠?



