“理解接口和抽像类,这是.NET的核心之一了,大型的应用软件中,要设计成高可扩展性的应用程序,得依赖松散耦合的原则,高内聚低耦合,接口负责只作业务的定义,把定义和现实很好的剥离了,能够更好的满足这种原则,所以在.NET的设计中不用接口是不敢想像的,在C#中是采用单类多接口的继承方式来进行实现,C++中是多类继承的方式,在petshop4.0中整个的技术架构就是用的接口,在.net Framework(1.0,1.1,2.0,3.0)中也全部是采用接口的设计思想! ”我用C#时间不长所以感觉C#语言中的“接口”和“抽像类”都没有用到,我不知道什么时候会用到这个
想请教下大家,一起来讨论下,最好有举例子看看
想请教下大家,一起来讨论下,最好有举例子看看
public class B:IB
{
}
public class A
{
private IB b;
}
假如B对象压根就不会有替换或分离的可能性,就不用依赖接口IB了.假如B对象需要替换,可以使用像PETSHOP那种工厂2.抽象类我在使用中更多的是因为代码重复才使用它楼下拍砖
这句话糊里糊涂的
c#允许把类和函o数声明为abstract,抽象类不能实例化,而抽象函数没有执行代码,必须在非抽象的派生类中重写,抽象函数也是虚拟的。如果一个类中
包含抽象方法,那么这个类一定是抽象类。抽象类中不一定包含抽象方法
abstract class Building
{
public abstract int Calculate();
}public class FinalCal:Building
{
public override int Calculate()
{
}
}派生类实现一个抽象类,则要重写该抽象类中的所有抽象方法接口:
接口是一种特殊的抽象类,使用interface关键字修饰,声明接口在语法与声明抽象类完全相同,但不允许提供接口中任何成员的执行方式,即不能有方法的实现
不能实例化接口,只能包含方法签名,并且不能被实例化和构造方法,只能由其实现类得到实例。接口也不能包含运算符的重载public interface IDis()
{
void Dispose();
}
class SomeClass:IDis
{
public void Dispose()
{}
}
如果创建的功能将在大范围的全异对象间使用,则使用接口。如果要设计小而简练的功能块,则使用接口。
如果要设计大的功能单元,则使用抽象类.如果要在组件的所有实现间提供通用的已实现功能,则使用抽象类。
抽象类主要用于关系密切的对象;而接口适合为不相关的类提供通用功能。
interface A
{
void About();
} class B : A
{
public void About()
{
Console.WriteLine("B");
}
} class MainClass
{
public static void Main()
{
B b = new B();
b.About();
Console.Read();
}
}
参考
1、接口是对行为的规定,而抽象类也是类,类是对对象的抽象,这个是最大的不同。
2、对C#来说,类只能当继承,而接口可以对继承。lz可以在网上搜索接口和抽象类的区别,有很多人进行过比较。