ZKX's LAB

抽象类的概念和应用场景 C#中抽象类和接口的应用场合的区别在哪里

2020-09-24知识9

面向对象中接口和抽象类的区别及应用场景 抽象类:可以这么理解。动物是一个抽象的概念,而狗,猫是具体的实例。这就是为什么需要抽象类来描述。一个动物类就是一个抽象类,动物都具有一些相同的方法(跑,叫,吃),而具体化到一个具体的动物的时候,也就是继承这个动物类的时候,也是动物的具体化。不同的动物有着不同的跑的方式,吃的方式以及叫的方式,但是他们都是动物,有着相似的方式。这样理解可能简单一点。而接口就是更加抽象的抽象类(可以这么理解)。抽象类可以有具体的方法,抽象方法必须使用关键字abstract,且不能拥有方法体,而接口的方法就不能有方法体。接口以及父类,抽象类就是实现多态的方式。

抽象类的概念和应用场景 C#中抽象类和接口的应用场合的区别在哪里

Java中 什么情况下使用接口?什么情况下使用抽象类?各自的优势是什么? 具体可以去这个空间淘宝:http://user.qzone.qq.com/151355135里面有不少 Java 类的文章今天实验室师兄提了一个有趣的问题“面向对象编程中为什么有了继承功能还要有接口功能?看似简单但还是很有深度的问题,虽然知道些答案但终究是没有完全答全,摆渡一下,整理答案如下,大家一起学习学习类继承(extends)和实现接口(implements)是完全不同的两回事。比如有两个基类 Base1 和 Base2,有两个接口 Intf1 和 Intf2,下面需要定义一个 MyClass 来实现一定的功能。如果是『MyClass extends Base1,Base2』(当然 Java 并不支持多继承,现在姑且这么说),那么在 MyClass 里不需要再写任何代码,它就已经具有了两个基类的原有功能;而如果是『MyClass implements Intf1,Intf2』,那么,在 MyClass 里必须按照两个接口的要求实现所有的方法,MyClass 才能用。可以看出,两种做法是完全不同的。当然,仅从 Caller 程序员的角度看,用“继承”的时候,通过 MyClass 可以调用两个基类所声明的方法,用“实现”的时候,通过 MyClass 可以调用两个接口所声明的方法,好像有点差不多,所以我说“似是”;但从 Callee 程序员的角度看,两者在“面向对象”的世界里所扮演的。

抽象类的概念和应用场景 C#中抽象类和接口的应用场合的区别在哪里

模板和继承都可以用来抽象不同场景,它们各有什么优劣? 我需要实现一个网络协议,由于协议版本号不同,同一个协议有多个版本,这些版本间的基本参数和处理过程都…

抽象类的概念和应用场景 C#中抽象类和接口的应用场合的区别在哪里

C#中抽象类和接口的应用场合的区别在哪里

#水果#接口#抽象类#面向对象#抽象方法

qrcode
访问手机版