接口:接口是一个引用类型,与类相似,不过在接口中只能包含常量,方法名和嵌套类型。没有构造器,所以不能被实例化只能被类所实现或者被另外的接口所继承。在接口中声明的方法没有方法体。

抽象类:将类层次中共有的特性抽取出来,创建包含这些共有特性的抽象类,并由抽象类派生出更加具体、有更过实现的子类。抽象类中可能包含抽象方法(即只被声明但没有被实现的方法),可以含有非抽象方法。抽象类也不能被实例化,但可以派生出子类。

因为在java中,一个类只能继承一个父类,这样就限制了子类的功能拓展,但是接口是可以多继承的,所以我们可以写一个接口来继承好多的接口,然后来实现这个接口,这样这个实现类就能实现所有接口的方法。但是如果这个实体类有不能实现的方法,而需要别的类来实现,那么我们就可以用一个抽象类来实现接口中的部分方法,其他的方法交给别的类来实现。

请看下面的几个demo:

1.多接口继承:

interface B{

public void set();

}

interface C{

public void get();

}

interface A extends B,C{

public void add();

}

接口继承也常用于接口升级。如果我们需要在一个旧接口中添加新的方法,这样会影响它的实现类,我们可以写一个新的接口来继承旧接口,把新方法写到新接口中,这样既不会影响旧接口的实现,还能升级接口。

2.方法分部实现:

如果一个类只能实现接口的部分方法,那么我们就可以用抽象类:

abstract class AImpl implements A{

public void set(){

System.out.println("set method");

}

}

如果一个类能实现其他的方法,那么可以让这个类继承抽象类,这样就不必实现接口的全部方法,而只实现抽象类中没有实现的部分:

class AImplAll extends AImpl{

@Override

public void add() {

System.out.println("add method");

}

@Override

public void get() {

System.out.println("get method");

}

}

在java代码的编写中灵活运用接口、抽象类、实体类的关系,可以让代码更清晰,更健壮,更容易维护和升级。

java实体类实现抽象类_java接口、抽象类、实体类关系介绍相关推荐

  1. Java 类和对象——抽象类、接口、Object类

    本文章继续来介绍类和对象的知识.重点介绍抽象类和接口,Object类只做简单介绍. 现在,定义一个Shape类(形状类),当不同的对象去调用的时候,就会画出不同的图形,使用圆这个对象去调用,就会画出⚪ ...

  2. java 抽象类,接口,object类详解

    抽象类: 如果一个类没有足够的信息去描绘一个具体的对象,那么这个类就可以叫做抽象类. 也可以叫做:可声明抽象方法的类==>抽象类 注意: <1>抽象类不可以实例化对象,所以它只能被继 ...

  3. abstract类_012 JAVA 抽象类、接口、String类的基础了解

    1.抽象方法和抽象类 抽象方法:使用abstract修饰的方法,没有方法体,只有声明.抽象方法可以当做是一种规范,让子类必须实现. 注意: 1.抽象方法没有方法体,只能以分号结尾 2.抽象方法只能声明 ...

  4. java接口可以扩展抽象类_Java—接口与抽象类

    1.语法层面上的区别 1)抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法: 2)抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public sta ...

  5. java接口和抽象类_Java接口和抽象类的区别

    类是对象的模板,抽象类和接口可以看做是具体的类的模板. 由于从某种角度讲,接口是一种特殊的抽象类,它们的渊源颇深,有很大的相似之处,所以在选择使用谁的问题上很容易迷糊.我们首先分析它们具有的相同点. ...

  6. java 抽象类和接口——抽象类

    文章目录 抽象类 抽象类概念 抽象类语法 抽象类特性 抽象类的作用 抽象类总结 抽象类 抽象类概念 如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 比如: 说明: 矩形.圆形 ...

  7. java定义一个类显示没有_Java 中的每个类都至少有一个构造方法,一个类中如果没有定义构造方法,系统会自动为这个类创建一个默认的构造方法。_学小易找答案...

    [单选题]关于 Java 语言叙述错误的是( ). [判断题]类中 static 修饰的变量或方法,可以使用类名或对象的引用变量访问. [命名题]命名下列化合物, [单选题]急性胰腺炎的主要临床表现是 ...

  8. java端口是多少钱_Java 接口,最少必要知识

    1.接口的基本概念 在 Java 中,被关键字 interface 修饰的"类"是接口. 接口的定义如下: interface 接口名称{ 全局常量: 抽象方法: } 2. 接口的 ...

  9. java uml类图教程_Java利器之UML类图详解

    原标题:Java利器之UML类图详解 (点击上方公众号,可快速关注) 来源:伯乐在线专栏作者- Code4Android 如需转载,发送「转载」二字查看说明 前言 UML(Unified Modeli ...

最新文章

  1. 成熟的GAN会自己分析脸部纹理!英伟达StyleGAN团队出新作,网友:竟然还能有突破...
  2. 错误: 程序包r2不存在_坚果 R2 使用体验:它是一款真旗舰,也是不一样的旗舰...
  3. .bash_profile和.bashrc说明
  4. art-template入门(四)之调试
  5. IE每打开一个网页跳出网页处理
  6. android window 半透明,popupWindow半透明背景
  7. 上海淘财经网要道歉客户的信
  8. bc显示小数点前的0
  9. IOS开发网络篇之──ASIHTTPRequest详解
  10. bzoj2705 [SDOI2012]Longge的问题
  11. Android ListView 代码1
  12. Windows下测试算法在FDDB数据库的性能
  13. 东芝打印机共享怎么设置_东芝网络打印机怎么安装
  14. 李笑来《财富自由之路》思维导图
  15. 随机生成中文姓名,手机号,邮编,住址(Java)
  16. matlab 曲线 标注,请问关于Matlab曲线标注问题
  17. 【三年面试五年模拟】算法工程师的独孤九剑秘籍(前十二式汇总篇)V1版
  18. 用python读取股票基本信息_python-使用pandas datareader获取股票信息
  19. MySQL数据库优化-运维角度浅谈
  20. Telephony--彩信问题分析方法

热门文章

  1. python中scale的用法_Tkinter Scale滑块组件的用法
  2. linux抓包库libpcap,linux下libpcap抓包分析.doc
  3. mysql 主从 now_MySql主从复制搭建方法
  4. mysql系统服务初始化_MySql服务初始化、安装、启动
  5. ant-design 本地web版本下载_bilibili 哔哩哔哩视频如何下载到电脑的 3 种方法
  6. 计算机专业盲打,在win7系统电脑练习盲打的方法
  7. c语言折半查找法找字符,C语言折半查找法练习题冒泡排序
  8. android 百度地图大头针,百度地图(大头针)
  9. c语言for循环可以初始化多个变量么_C8循环
  10. 大班音乐机器人反思_幼儿园大班音乐律动教案《伦敦桥》含反思