类继承与接口继承有何差别? ( 积分: 50 )

  • 主题发起人 主题发起人 ykjt
  • 开始时间 开始时间
Y

ykjt

Unregistered / Unconfirmed
GUEST, unregistred user!
类继承的同时接口不也同时继承了吗?谁能举例说明?
 
类继承的同时接口不也同时继承了吗?谁能举例说明?
 
接口继承的是定义,不是实现。
接口继承描述了一个对象什么时候能被用来替代另一个对象
 
类继承只能单继承,而接口可以实现多继承
 
“类继承的同时接口不也同时继承了吗?”什么意思?能具体点吗?
你可参考参考TControl和TComponent的继承关系。如果父类实现了接口,则子类继承以后,
同时继承了父类实现的接口。
接口继承是继承接口定义,具体实现由声明实现接口的类完成。定义一个A接口,B接口继承
自A接口,则一个实现B接口的类就是要同时实现A接口以及B接口中的额外部分。
 
接口的方法没有实现,全都是抽象方法,类继承接口不如说是实现接口。
类继承父类的的方法,如果不重载就和父类一样。
 
使用接口有什么好处?接口是对象吗?接口分类吗?
 
用接口可以不用知道类的内部实现,对于实现该接口的的类就可以用接口定义的各种方式访问对象。接口不是对象。接口不分类,类也不分类,没有这个叫法吧。
举例:接口A,类C实现了A接口。
这是我用A定义的变量X都可以指向一个C的对象。X:=C.create;
x.fun1();
x.proc();
这种调用就是按照接口的方式访问对象。
使用接口访问可以降低对象之间的依赖。例如 A对象通过接口B访问C对象。如果需要修改C对象的行为,或者另外的类来实现C对象。A的访问方式是不变的。可以做到A的代码不需要修改。
以上是我个人理解
 
可以将接口看作协议,有几个不同的类实现同一个接口,可以看作实现相同的协议(协议
名是相同的),但实现的具体方法因类而定,如果这几个类都有一个实例对象,那么你可
以根据具体需要获取某个特定实例中的接口(使用一个名字就够了),这样起到规范统一
的作用。比如类A、B、C都实现了一个接口SayGoodBye(A使用中文说、B使用英文说、C使用
法语说),并都有一个实例对象A1、B1、C1,那么你可以根据需要调用三个对象的中某一个
的SayGoodBye。
接口一般可以看作是对象中某个特定方法的指针,对象存在的情况下,可以通过接口获取
其内部实现的某个方法,也就是把对象内部的方法通过接口导出来供外部利用,这叫作该
对象提供了接口服务。通俗点,接口就是对象提供的某个特定的服务,这种服务通过接口
(相当于服务协议)事先约定。当然,接口除提供方法服务外,还可以实现为导出数据。
 
多人接受答案了。
 
后退
顶部