抽象类(abrstract class)与接口(interface)有何异同
2024-09-04 21:03:01
抽象类:如果一个类中包含抽象方法(用abstract修饰的方法),那么这个类就是抽象类
接口:是指一个方法的集合,接口中的所有方法都没有方法体
相同点:
1)都不能被实例化
2)接口的实现类或抽象类的子类都只有实现了接口或抽象类中的方法后才能被实例化
不同点:
1)接口只有定义,其方法不能再接口中实现,只有实现接口的类才能实现接口中定义的方法,而抽象类既可以有定义也可以有实现
2)接口需要实现(implements),抽象类只能被继承(extends)。一个类可以实现多个接口,但只能继承一个抽象类,因此使用接口可以间接地达到
多重继承的目的
3)接口中的成员变量默认为public static final,表示静态、不能被修改的,而且必须给其赋初值,其方法会被隐式地指定为public abstract方法且只能是public abstract方法。
抽象类可以有各种类型的成员变量,默认为default(本包可见),也可以被定义为private,protected和public
4)接口被运用于实现比较常用的功能,便于日后维护或者添加删除方法,而抽象类更倾向于充当公共类的角色,不适用于日后重新对里面的代码进行修改
最新文章
- Java 2D API - 2. Graphics 入门
- MongoDB安装启动服务
- Rainyday.js – 使用 JavaScript 实现雨滴效果
- Uart的Verilog建模
- Caffe学习系列(12):训练和测试自己的图片
- yii CDbCriteria 类的总结
- Orchard官方文档翻译(二) 安装 Orchard
- word-wrap:break-word和word-break:break-all的小小比较
- hdu 5281 Senior's Gun
- hdu 3068(最长回文)
- hdu2389二分图之Hopcroft Karp算法
- 深度学习原理与框架-Alexnet(迁移学习代码) 1.sys.argv[1:](控制台输入的参数获取第二个参数开始) 2.tf.split(对数据进行切分操作) 3.tf.concat(对数据进行合并操作) 4.tf.variable_scope(指定w的使用范围) 5.tf.get_variable(构造和获得参数) 6.np.load(加载.npy文件)
- blinker语音控制Arduino/esp8266开关灯-滑动条使用-文本框交互
- 解决java.lang.IllegalStateException: The application’s PagerAdapter changed the adapter’s content
- juqery的一些简单用法
- hbase建表时 ERROR: java.io.IOException: Table Namespace Manager not ready yet, try again later
- Git提取两次提交的差异文件
- JavaScript 之 截取字符串函数
- CNN卷积减少参数个数的理解(分为全连接到CNN三个层级)
- Activity重要函数
热门文章
- js实现年月日三级联动
- 阿里巴巴矢量库IconFont__使用小录
- 【sqli-labs】 less29 GET- Error based -Impidence mismatch -Having a WAF in front of web application (GET型基于错误的带有WAF注入)
- beetl模板入门例子
- Git更新代码
- :before和:after结合使用
- wget 批量下载网站目录下的文件
- 实现Modbus ASCII多主站应用
- 如何在Loadrunner11中解决HTTP BASIC认证登录报401的问题
- phpMyAdmin使用教程