c#中接口和抽象类区别
1个回答
展开全部
这两个是比较容易混淆的,理解之后就很容易区分。。
接口:
1.所有方法都是抽象方法,
2.所有的属性都是静态常量,
3.没有构造函数,
4.一个类可以同时实现多个接口,
5.一个接口可以同时继承多个接口。
抽象类:
1.可以有非抽象方法。
2.属性中可以有非静态常量。
3.有构造函数。
4.一个类只能继承一个父类。
5.一个类可以被多个子类继承。
-------
再引申一点(上面的都懂了,再看下面的,否则你会更容易乱):接口中所有方法都是抽象方法并不是绝对的。在C#8.0版本以后,接口中允许有非抽象方法,而且可以有方法体。但是继承该接口的子类,无法继承这些非抽象方法。继承类实例化的对象也不能调用。具体怎么用那就是其他问题了。作为两者的比较,你只要理解上面的5点就行了。
接口:
1.所有方法都是抽象方法,
2.所有的属性都是静态常量,
3.没有构造函数,
4.一个类可以同时实现多个接口,
5.一个接口可以同时继承多个接口。
抽象类:
1.可以有非抽象方法。
2.属性中可以有非静态常量。
3.有构造函数。
4.一个类只能继承一个父类。
5.一个类可以被多个子类继承。
-------
再引申一点(上面的都懂了,再看下面的,否则你会更容易乱):接口中所有方法都是抽象方法并不是绝对的。在C#8.0版本以后,接口中允许有非抽象方法,而且可以有方法体。但是继承该接口的子类,无法继承这些非抽象方法。继承类实例化的对象也不能调用。具体怎么用那就是其他问题了。作为两者的比较,你只要理解上面的5点就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询