关于抽象类实现接口的问题

问题描述

例如:接口中定义了两个函数A、B一个抽象类实现了这个接口中的一个函数A请教一下问题这个抽象类的子类是因为其父类没有实现函数B,从而需要自己去实现函数B,因为接口就是一个契约。那么既然是契约,为什么抽象类可以只实现接口中的一个函数A,不实现函数B也仍然可以编译通过呢?

解决方案

抽象类不是具体实现类,可以实现接口中的方法,但不是必须的,如果不实现就相当于从接口把这个方法“继承”过来变成了一个抽象方法。而具体实现类,才必须实现所有接口中的方法和所有抽象父类中的抽象方法。
解决方案二:
1、接口里的方法都是public 抽象的 ------->契约2、抽象类里的方法可以是抽象 也可以是具体的 ------->共性 即子类都可以复用3、具体类里的方法只能是具体的 ------->个性

时间: 2024-10-25 10:58:13

关于抽象类实现接口的问题的相关文章

php中抽象类和接口的概念以及区别

本篇文章是对php中抽象类和接口的概念以及区别进行了详细的分析介绍,需要的朋友参考下   复制代码 代码如下: //抽象类的定义: abstract class ku{ //定义一个抽象类 abstract function kx(); ...... } function aa extends ku{ //实现抽象类的方法 function kx(){ echo 'sdsf'; } } //使用方法 $aa=new aa; $aa->kx(); //1.定义一些方法,子类必须完全实现这个抽象中所

Java编程那些事儿68——抽象类和接口(一)

在实际的项目中,整个项目的代码一般可以分为结构代码和逻辑的代码.就像建造房屋时,需要首先搭建整个房屋的结构,然后再细化房屋相关的其它的结构,也像制造汽车时,需要首先制作汽车的框架,然后才是安装配件以及美化等工作.程序项目的实现也遵循同样的道理. 在项目设计时,一个基本的原则就是--"设计和实现相分离".也就是说结构代码和逻辑代码的分离,就像设计汽车时只需要关注汽车的相关参数,而不必过于关心如何实现这些要求的制作.程序设计时也是首先设计项目的结构,而不用过多的关系每个逻辑的代码如何进行实

Java中抽象类与接口的区别

  接口和抽象类有好多相同点和类似点,很多人有过这样的疑问:为什么有的地方必须使用接口而不是抽象类,而在另一些地方,又必须使用抽象类而不是接口呢?或者说,在考虑Java类的一般化问题时,很多人会在接口和抽象类之间犹豫不决,甚至随便选择一种. 理解抽象类 abstract class和interface在Java语言中都是用来进行抽象类(本文 中的抽象类并非从abstract class翻译而来,它表示的是一个抽象体,而abstract class为Java语言中用于定义抽象类的一种方法, 请读者

《java与模式》笔记-----抽象类和接口

笔记 抽象类和接口 什么是接口:接口就是一些方法特征的集合------接口是对抽象的抽象. 什么是抽象类:抽象类对某具体类型的部分实现------抽象类是对具体的抽象. 方法特征包括:方法的名字.参数的数目.参数的类型.不包括:返回类型.参数名字.和抛出的异常. 接口是类型转换的前提.是动态调用的保证.实现某一接口就完成了类型的转换(多重继承):动态调用只关心类型,不关心具体类.          -------------------------------------------------

深入继承之抽象类和接口综合分析及完整案列解说(二)

通过深入继承之抽象类和接口综合分析及完整案列解说(一),我想大家已经认识到了知识共享的巨大力量了.我门上面看到的这些东西不 是我们任何一个人在短时间内就能够总结出来的,但是大家一起总结,那结果就是这样爽的. 我希望大家都能够大方一点,别做得那么 小气,生怕自己知道的那点知识被别人知道了.饭碗就被别人抢了,事实上在跟人分享的过程中并不是一味的在付出,你同样也会有收获,无 论是帮别人解答疑问还是跟别人交流,就好象我在写(或着说我是在复制别人的心得)一样,看起来我是在无偿的为大家做,事实上呢我同样 的

抽象类与接口

和非抽象类一样,抽象类也必须提供在基类列表中出现的所有接口成员的实现.不同的是,抽象类允许将接口的方法映射到抽象的成员方法. interface IMethods { void F(); void G(); } abstract class C:IMethods { public abstract void F(); public abstract void G(); } 上例中,所有C的非抽象的派生类必须重载C中的抽象方法来提供对接口的实现. 注意:显式说明的接口成员不能是抽象的,但它允许调用

Java编程那些事儿70——抽象类和接口(三)

8.9.3 抽象类和接口的比较 抽象类和接口都是进行面向对象设计时专用的设计结构,在实际进行项目设计时,经常需要考虑的问题就是--"使用抽象类还是接口"?下面通过对于抽象类和接口进行简单的比较,熟悉两者之间的区别和联系,从而在实际设计时使用恰当的结构. 1.什么时候使用抽象类或接口? 当设计中为了规范类中方法声明的结构(即类的行为)时,使用抽象类或接口.也就是强制子类对外部提供统一的方法声明时,使用抽象类或接口. 2.抽象类和接口的区别(不同点) a)抽象类是类,而接口是接口. 因为抽

C#中抽象类和接口的区别

一.抽象类: 抽象类是特殊的类,只是不能被实例化:除此以外,具有类的其他特性:重要的是抽象类可以包括抽象方法,这是普通类所不能的.抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们.另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们. 二.接口: 接口是引用类型的,类似于类,和抽象类的相似之处有三点: 1.不能实例化: 2.包含未实现的方法声明: 3.派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括

深入理解抽象类和接口

抽象类和接口是对于面向对象中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才具有了强大的面向对象能力.abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意.其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的理解.对于设计意图的理解是否正确.合理.本文将对它们之间的区别进行一番剖析,试图给开发者提

class-如何简洁明了的描述Android中活动、实例、对象、类、抽象类、接口之间的关系?

问题描述 如何简洁明了的描述Android中活动.实例.对象.类.抽象类.接口之间的关系? 如何简洁明了的描述Android中活动.实例.对象.类.抽象类.接口之间的关系? 解决方案 实例.对象.类.抽象类.接口是java的语法,和android没有关系. 抽象类是不可以实例化并且包含抽象成员的类,一种特殊的类. 类的实例叫做对象 接口约定了一个类必须实现哪些方法 android的活动(activity)是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务 解决方案二: 抽象类和接