类、抽象类、接口之间的区别
目录
1、类与抽象类的异同之处
(1)类和抽象类的区别
(2)类和抽象类的相同之处
2、接口与类的异同之处
(1)接口与类相似点
(2)接口与类的区别
(3)接口特性
3、抽象类和接口的区别
1、类与抽象类的异同之处
抽象类的定义:由关键字abstract声明的类为抽象类。
(1)类和抽象类的区别
- 类可以实例化对象,而抽象类不能实例化对象。
(2)类和抽象类的相同之处
- 抽象类除了不能实例化对象之外,类的其他功能仍然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。
因为抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。
在Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口。
抽象类中可以有抽象方法和普通方法。
2、接口与类的异同之处
接口(interface),在Java编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。
接口和类属于不同的概念,类是描述对象的属性和方法,接口是包含类要实现的方法。
除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。
接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。
(1)接口与类相似点
- 一个接口可以有多个方法。
- 接口文件保存在 .java 结尾的文件中,文件名使用接口名。
- 接口的字节码文件保存在 .class 结尾的文件中。
- 接口相应的字节码文件必须在与包名称相匹配的目录结构中。
(2)接口与类的区别
- 接口不能用于实例化对象,而类可以。
- 接口没有构造方法,类中有构造方法。
- 接口中所有的方法必须是抽象方法,而类中的方法可以是抽象方法,也可以是普通方法。
- 接口不能包含成员变量,除了 static 和 final 变量。
- 接口不是被类继承了,而是要被类实现。
- 接口支持多继承。
(3)接口特性
- 接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract(只能是 public abstract,其他修饰符都会报错)。
- 接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量(并且只能是 public,用 private 修饰会报编译错误)。
- 接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。
3、抽象类和接口的区别
- 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。
- 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。
- 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。
- 一个类只能继承一个抽象类,而一个类却可以实现多个接口。
类、抽象类、接口之间的区别相关推荐
- Java中类、抽象类、接口之间的区别和联系。
Java中类.抽象类.接口之间的区别和联系. 程序设计所面对的问题域--客观世界,是由许多事物构成的,这些事物既可以是有形的(比如一辆汽车),也可以是无形的(比如一次会议).把客观世界中的事物映射到面 ...
- JAVA面向对象-----接口与类、接口之间的关系
接口与类.接口之间的关系 大家之前都知道类与类之间的关系继承,那么接口与类之间又是怎样子的关系呢? 接口与类之间是实现关系.非抽象类实现接口时,必须把接口里面的所有方法实现.类实现接口用关键字impl ...
- lcd屏幕有mipi接口吗_LCD屏幕MIPI接口和LVDS接口之间的区别(摘要)
LCD屏幕接口类型包括LVDS接口,MIPI DSIDSI接口(以下仅讨论LCD屏幕LVDS接口显示屏的mipi接口定义显示屏的mipi接口定义,而没有讨论其他应用程序的LVDS接口,因此当涉及LVD ...
- 普通类,抽象类和接口之间的区别
一.普通类.抽象类和接口区别: 1. 普通类可以实例化,接口都不能被实例化(它没有构造方法),抽象类如果要实例化,抽象类必须指向实现所有抽象方法的子类对象(抽象类可以直接实例化,直接重写自己的抽象方法 ...
- Java中抽象类和接口之间的区别
一些受欢迎的访谈问题是"抽象类和接口之间有什么区别","什么时候使用抽象类以及什么时候使用接口". 因此,在本文中,我们将讨论这个主题. 在探讨它们之间的差异之 ...
- 什么是抽象类,接口?他们的区别?(详解)
目录 1.抽象类 2.接口 3.抽象类与接口的联系与区别 1.抽象类 定义: 如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类 这么说可能不好理解,我们来换个说法: 抽象类无法被 ...
- java基础-类-抽象类-接口(自学笔记)
一.类 class 定义:具有相同属性(特性)和方法(行为)的一类事物 的抽象的总称 例如:人类,动物,车,屌丝类.是一种类别,世界上所有的事物都可以分类,在计算机中java都能进行对应和体现 类的三 ...
- java 类 抽象类 接口_Java抽象类和接口
抽象类和接口 一.抽象类和抽象方法 对于抽象类,首先需要介绍抽象方法,而抽象类因抽象方法的存在而存在 1.抽象方法 (1)必要性: 有些父类方法不确定如何写方法体,但是对于继承它的子类又必须用到这个方 ...
- Java中List和Map接口之间的区别
列表与地图界面 (List vs Map interface) Here, we will see how List differs from Map interface in Java and we ...
最新文章
- AI又被彩虹吹!​网易被预言为“下一个百度”?
- FZU 2159 WuYou
- SDN架构的本质属性—Vecloud
- YBTOJ:矛盾指数(网络流-最大权闭合图)
- dos安装深度linux,U盘用grub4dos引导Deepin v20 Beta iso安装的方法
- chrome查看md文件
- python语言三大基本控制结构_Python基础知识之4——三大控制结构
- 05年的一个访谈记录
- Ubuntu入门——基础终端命令
- Ubuntu上Qt安装以及配置完整步骤
- deeping linux下安装配置nginx+django
- u盘怎么安装计算机系统,教您如何用u盘装系统
- 高斯-勒让德求积公式及Matlab实现
- 【2020总结】 一直坚持,一路向前!
- DB2数据库ALTER命令(修改表结构相关)
- 重复行删除操作df.drop_duplicates和df.duplicated
- matlab多元方程整数解,matlab多元非线性方程组解法
- 涛思 TDengine 表设计及SQL
- 淘宝开店须知——新手卖家最基础的运营思路
- 用Python爬取手机壁纸,太简单了吧
热门文章
- zookeeper -- Mac 上 Intellij IDEA 配置 zookeeper(3.5.8) 源码阅读、运行、调试环境
- leetcode-455 分发饼干
- ceph admin socket修改ceph配置文件
- 设计1.0 -- iterator 和const_iterator底层的模拟实现
- (一)七种AOP实现方法
- pip install lxml失败原因
- Oracle 导表异常处理方案 (解决空表导出出错问题)
- cf776G.Sherlock and the Encrypted Data
- wait跟sleep的区别
- 选择、分组、引用,指定匹配的位置