namespace ConApp_接口
{
/*
接口和抽象类的区别:
* 抽象类不仅可以定义许多的抽象成员来为所有的派生类型提供接口,还可以定义许多构造函数,字段,属性,非抽象的成员(也就是带有实现的)
* 接口只能包含抽象成员
* 抽象类不允许类的多重继承(在大型的项目当中,很少使用抽象类作为公共成员的基类,不支持多重继承使其派生类只能继承该类)
* 抽象类的派生类必须实现抽象父类中的每一个抽象成员
*
* 接口不能继承自类,但可以继承自接口
* 接口中的成员不指定访问修饰符(默认的接口成员的访问修饰符都是隐士公共抽象的)
* 接口中不能有字段
* 接口中不能有构造函数
* 接口不能提供实现
* 接口中可以定义属性
* 无法创建抽象类或接口的实例
*/
class Program
{
static void Main(string[] args)
{
SubClass ss = new SubClass();
Console.ReadKey();
}
}
public interface ICase_1 //接口使用Interface关键字,接口是引用类型
{
void Remove();
}
public interface ICase_2
{
}
class Case_1
{
public int bb { get; set; }
}
public class SubClass : ICase_1//类可以继承自接口,接口不能继承自类,继承自接口的派生类必须实现接口中的所有成员
{
public void Remove()
{
}
}
public interface Interface_1 : ICase_1, ICase_2//接口支持多重继承
{
}
/*
判断一个类型是否指定一个接口的方式:
* 通过显示转换来实现,为了避免异常的情况出现,和try{}catch{}异常处理语句结合使用
* 如果一个对象已被视为一个指定的接口,我们还可以通过使用as关键字来指向该对象接口的引用。否则就会返回一个值为null的引用。因此在这种情况我们转换后需要对转换结果进行空值判断
* 对于 is关键的使用 可以 来直接判断该对象是否符合指定接口 ,然后返回一个bool类型的结果
*/
}
黑马程序员_接口的学习
最新推荐文章于 2015-10-20 17:50:39 发布