Java中抽象类和接口的区别?
抽象类和接口的概念
抽象类
抽象类必须用 abstract 修饰,子类必须实现抽象类中的抽象方法,如果有未实现的,那么子类也必须用 abstract 修饰。抽象类默认的权限修饰符为 public,可以定义为 public 或 procted,如果定义为 private,那么子类则无法继承。抽象类不能创建对象
接口
接口中的变量隐式的使用 public static final 修饰,并且需要给出初始值。方法隐式的使用 public abstract 修饰(并且只能是 public ,如果是 private,procted,那么就编译报错)。接口中的方法默认不能有具体的实现(JDK1.8开始可以有默认的实现)
抽象类和普通类的区别
1 . 抽象类必须用public、procted 修饰(如果为private修饰,那么子类则无法继承,也就无法实现其抽象方法)。默认缺省为 public
2 . 抽象类无法创建对象
3 . 如果一个子类继承抽象类,那么必须实现其所有的抽象方法。如果有未实现的抽象方法,那么必须定义为 abstract
抽象类和接口的区别
1 . 抽象类只能继承一次,但是可以实现多个接口
2 . 接口和抽象类必须实现其中所有的方法,抽象类中如果有未实现的抽象方法,那么子类也需要定义为抽象类。抽象类中可以有非抽象的方法
3 . 接口中的变量必须用 public static final 修饰,并且需要给出初始值。所以实现类不能重新定义,也不能改变其值。
4 . 接口中的方法默认是 public abstract,也只能是这个类型。不能是 static,接口中的方法也不允许子类覆写,抽象类中允许有static 的方法
抽象类和接口的相同点
1 . 抽象类和接口均包含抽象方法,类必须实现所有的抽象方法,否则是抽象类
2 . 抽象类和接口都不能实例化,他们位于继承树的顶端,被其他类继承和实现
Java中抽象类和接口的区别?相关推荐
- 详细解答Java中抽象类和接口的区别问题!
接口(Interface)和抽象类(Abstract Class)是支持抽象类定义的两种机制. 一.抽象类 在Java中被abstract关键字修饰的类称为抽象类,被abstract关键字修饰的方法称 ...
- 详细解析Java中抽象类和接口的区别
在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力.abstract class和int ...
- 【转】详细解析Java中抽象类和接口的区别
在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力.abstract class和int ...
- 详细解析Java中抽象类和接口的区别(很容易理解错)
2007-09-28 12:17作者:doublel出处:论坛整理责任编辑:方舟 在Java语言中, abstract class 和interface是支持抽象类定义的两种机制.正是由于这两种机制的 ...
- Java中抽象类和接口的区别(来源一)
在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力.abstract class和int ...
- Java中抽象类和接口的区别(来源二,原始来源不明确)
在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 抽象类往往用来表征我们在对问题 ...
- Java中抽象类和接口在概念、语法和应用上的区别和关系
2019独角兽企业重金招聘Python工程师标准>>> 春招开始了,盆友们都忙着准备笔试.准备面试,复习学过的知识点,当然我也不例外,在这里祝每一个"有心人"心想 ...
- php 抽象类 接口 区别,PHP中抽象类、接口的区别与选择分析
本文实例分析了PHP中抽象类.接口的区别与选择.分享给大家供大家参考,具体如下: 区别: 1.对接口的使用是通过关键字implements.对抽象类的使用是通过关键字extends.当然接口也可以通过 ...
- 关于Java中抽象类和接口的一点思索
Java中抽象类和接口的一点思索 成员方法上的区别: 1. java中的抽象类可以提供成员方法的实现细节,抽象方法只能是被public和protected来修饰 配合abstract关键字,子类需要实 ...
最新文章
- 面试题:函数回调机制、异步函数回调机制图例详解 没毛用
- 简单的安卓app小程序代码_开发一款APP大概需要多少钱?
- CentOS ping name or service not known问题解决
- C语言高级输出及进阶
- 不懂函数式?用mobx来写react应用吧
- 全面认识openstack:OpenStack架构详解
- 建模步骤_UG1847建模机械零件,零基础可读详细图文步骤
- oracle优化方法,九大Oracle性能优化基本方法详解
- 虚拟服务器密码遗忘怎么办,win7虚拟机忘记密码怎么办_win7虚拟机忘记密码的解决方法...
- div中加入span右对齐后出现换行显示的两种解决办法(转)
- ae 渲染 计算机内存不足,AE内存不足怎么办? After Effects内存不足【解决方法】...
- vue 移动端弹窗后禁止页面滚动 @touchmove.prevent
- cad中tk什么意思_cad图纸中各种字母是什么意思
- yigo基础学习笔记4_业务流程
- 今日头条测开----2轮
- 侍魂胧月传说服务器维护,侍魂胧月传说手游7月1日停机维护更新公告
- Excel VBA(02)工作簿、工作表、单元格操作
- SourceTree生成密钥
- Rasa使用指南01
- 彻底卸载Websphere
热门文章
- android 手写签批_Android手写签批功能实现(适配Android6
- 360天气怎么设置方法 360天气如何设置城市
- Win11怎么设置提高电脑游戏性能
- 腾讯视频如何设置定时关机
- Win7系统Office卸载不干净无法安装怎么办
- java面试题:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
- mysql数据库中数据类型的长度
- 在c语言中预处理命令行都以井号开头,以井号开头的行和gcc预处理器输出中的'#1“ac”'之类的数字是什么意思?...
- mysql索引结构优缺点_mysql索引优缺点及注意事项
- Maven学习(五)————依赖的特性辨析