不一定,关键要看子类是否是抽象类。

如果子类是非抽象类,则必须实现接口中的所有方法;如果子类是抽象类,则可以不实现接口中的所有方法,因为抽象类中允许有抽象方法的存在!

一、抽象类定义

抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。通常在编程语句中用 abstract 修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。抽象类是不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色。

二、抽象类特点

1)抽象类不能实例化。
2)抽象类可以包含抽象方法和抽象访问器。点评:这个抽象访问器是什么鬼?不就是 setter/getter 方法吗?
3)不能用 sealed 修饰符修饰抽象类,因为这两个修饰符的含义是相反的。 采用 sealed 修饰符的类无法继承,而 abstract 修饰符要求对类进行继承。
4)从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实际实现。点评:这个非抽象类应该叫具体类

三、与具体类的比较

1)抽象类不能直接实例化,并且对抽象类使用 new 运算符会导致编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为 null,或者含有对非抽象类的实例的引用(此非抽象类是从抽象类派生的)。
2)允许(但不要求)抽象类包含抽象成员。
3)抽象类不能被密封。

四、与接口的比较

1)相同点
a、不能实例化;
b、包含未实现的方法声明;
c、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员)。点评:派生类是指所有派生出来的子类(可以是抽象类,也可以是具体类),所以派生类必须实现全部的抽象方法的说法是错误的。具体的子类才必须实现全部的抽象方法

2)不同点
a、类可以实现无限个接口,但仅能从一个抽象(或任何其他类型)类继承,从抽象类派生的类仍可实现接口,从而得出接口是用来解决多重继承问题的。
b、抽象类当中可以存在非抽象的方法,可接口不能,且它里面的方法只是一个声明必须用public来修饰没有具体实现的方法。
c、抽象类中的成员变量可以被不同的修饰符来修饰,可接口中的成员变量默认的都是静态常量(static final)。点评:不是所有的变量都是成员变量,所以这里应该表述为变量才正确
d、抽象类是对象的抽象,然而接口是一种行为规范。

Java中,我自己定义的某个类,去实现某个接口,是否必须实现该接口的全部抽象方法呢?相关推荐

  1. java在dog中定义name变量,组合构造 冯跃峰 java中组合的应用(不相干的类共同完成一个功能)+构造器回顾...

    java中组合的应用(不相干的类共同完成一个功能)+构造器回顾:今天我们了解到java的组合.可以说java组合是非常的重要的.可以对类进行封装,将底层的内容封装起来.甚至于java的继承都没有其重要 ...

  2. 在Java中是如何定义和声明接口的?

    java技术需要学习的内容有很多,本期小编整理的教程资料就是关于"在Java中是如何定义和声明接口的?"的内容,希望下面的介绍能够给大家带来帮助. 如果一个抽象类的所有方法都是抽象 ...

  3. Java数组怎么定义?java中数组的定义及使用方法

    许多初学者不知道如何定义java中数组,下面我就为大家带来一篇java中数组的定义及使用方法.应该可以解决大部分人的需求,现在就分享给大家,也给大家做个参考. 数组:是一组相关变量的集合 数组是一组相 ...

  4. Java中的string定义的两种方法和区别

    java中的String定义的两种方法和区别 第一种:new方式 String s1 = new String("hello world"); String s2 = new St ...

  5. java学习总结(16.06.03)java中数组的定义和初始化

    刚开始接触java的数组时,我觉得java的数组和c++的数组虽然大致上差不多但细节上差很多,我也因此差点混乱了.后来自己仔细理了一下发现java和c++的数组只在定义和初始化上存在几点差异,而其他部 ...

  6. Java编程题:定义一个Box类,属性有:长,宽,高,并初始化数据

    Java编程题:定义一个Box类,属性有:长,宽,高,并初始化数据 Box类: /*** Java编程题:定义一个Box类,属性有:长,宽,高,并初始化数据*/package Box;public c ...

  7. java 中成员变量的名字和类的方法的名字可以一样.

    java 中成员变量的名字和类的方法的名字可以一样. public class fourone {public static void main(String[] args) {int first[] ...

  8. java 中操作字符串都有哪些类?它们之间有什么区别?

    java 中操作字符串都有哪些类?它们之间有什么区别? String.StringBuffer.StringBuilder String : final修饰,String类的方法都是返回new Str ...

  9. java中随机数怎么定义类_浅析Java中的随机数类

    Java中的随机数是否可以重复?Java中产生的随机数能否可以用来产生数据库主键?带着这个问题,我们做了一系列测试. 1.测试一: 使用不带参数的Random()构造函数 * @author Carl ...

  10. java中可用于定义成员常量_13秋北航《Java语言与面向对象程序设计》在线作业三辅导 …...

    需要答案的请联系:qq或者微信 514169068 一. 惟一选项(共 15 道试题,共 60 分.)V 1.设有定义 float x=3.5f, y=4.6f, z=5.7f:则以下的表白式中,值为 ...

最新文章

  1. CoRL 2020奖项公布,斯坦福获最佳论文奖,华为等摘得最佳系统论文奖
  2. 【LInux】查看Linux系统版本信息
  3. jQuery对象与DOM对象的相互转化
  4. 1:ImageNet Classification with Deep Convolutional Neural Networks
  5. 百度和360的关键词提交查询
  6. 关于Servlet的原理以及常用类
  7. A. And Then There Were K
  8. 线性回归的Spark实现 [Linear Regression / Machine Learning / Spark]
  9. C语言学习:malloc()函数
  10. oracle fs1 2多少u,甲骨文FS1系列闪存的“大道至简”
  11. 静默错误:为什么看了那么多灾难,还是过不好备份这一关?
  12. 读CLR via C#总结(13) 详谈泛型
  13. 用spss做多组两两相关性分析_卡方检验的事后两两比较
  14. python对excel数据统计_数据分析EPHS(4)-使用Excel和Python计算数列统计值
  15. VR全景虚拟校园提高学校的知名度和美誉度
  16. Yandex域名邮箱逻辑
  17. 一文了解AAAI国际会议–附: 各年论文连接
  18. python 高德/百度/腾讯/谷歌API 与WGS84坐标互转(BD09/GCJ02/WGS84)
  19. JAVA基础之类和对象
  20. 如何使用sql语句算两经纬度的距离

热门文章

  1. sql 解析 java_将Java 8流解析为SQL
  2. jboss4 迁移_应用程序服务器迁移:从JBoss EE5到Wildfly EE7
  3. eai app_EAI的Spring集成教程
  4. sts集成jboss_JBoss BPM Travel Agency演示与现代BPM数据集成
  5. 您的JVM是否泄漏文件描述符-像我的一样?
  6. Hibernate事实:集成测试策略
  7. java jvm调优_(第1部分,共3部分):有关性能调优,Java中的JVM,GC,Mechanical Sympathy等的文章和视频的摘要...
  8. 使用Travis-CI的SpringBoot应用程序的CI / CD
  9. spring mvc拆分_Spring集成–强大的拆分器聚合器
  10. Java命令行界面(第24部分):MarkUtils-CLI