类,接口!
一个类实现了多个接口中的方法,在实际应用中是用类来调用方法?,还是用接口来调用方法?
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 有关类的技术实验3
{
public interface IMyInterface {
void Method();
}
public interface IMyInterface2
{
void Method2();
}
public class MyClass : IMyInterface, IMyInterface2
{
public void Method()
{
Console.WriteLine("Greetings from IMyInterface ");
}
public void Method2()
{
Console.WriteLine("Greetings from IMyInterface2");
}
}
class Program
{
static void Main(string[] args)
{
IMyInterface a = new MyClass();
a.Method();
IMyInterface2 b = new MyClass();
b.Method2();
MyClass c = new MyClass();
c.Method();
c.Method2();
Console.ReadKey();
}
}
}
实际应用中,是红色的使用的多,还是天蓝色的使用的多?,使用这两种方法技术上的称呼叫什么?
还有
IMyInterface a = new MyClass();
a.Method();
这段代码,听大牛们说,new是创建了一个引用,把地址传给了a,我的问题是,类的地址传给了接口,这样的隐式转换没问题吗?我只看到过,继承类可以隐式地转换给基类... ...
[解决办法]
一般红色部分用得多,将子类对象的引用传给父类引用的变量就是实现多态的方法了,是面向对象的重要思想。
在这里可以将接口看成是一个纯抽象类,其实实现它的类跟它也是继承关系,它们之间也可以看成是"is a"关系。
只是接口更强调的是对外部提供了那些操作,继承它的类一定要实现它的方法,所以你知道如果一个类继承了一个接口的话,那么
这个类一定提供了接口中声明的方法的实现。
你可以将接口看成是提供了一种标准,比如客户提出一个标准,只要我给出满足这个标准的插件,就一定能在客户的程序中正常使用。
[解决办法]