| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> 接口和抽象类总结 -> 正文阅读 |
|
[移动开发]接口和抽象类总结 |
目录 注意事项????????测试环境jdk"1.8.0_91",不同jdk版本可能特性会不一样,请谨慎看待 抽象类细节????????1、不能被实例化 ????????2、不一定包含abstract/可以有自己的实现方法 ????????3、abstract只能修饰类的方法 ????????4、有abstract方法的类必定是抽象类 ????????5、抽象类本质上还是类<继承了Object> ????????6、抽象方法不能有主体,即不能实现 ????????7、如果一个类继承了抽象类,则它必须实现抽象类的**所有抽象方法**,除非它自己也声明为abstract类 ????????8、不能使用private、final和static修饰
接口的细节? ? ? ? 1、接口不能被实例化 ? ? ? ? 2、接口中所有的方法是public方法<jdk版本要特别注意!>,你可以不使用abstract修饰<默认修饰是public abstract> ? ? ? ? 3、一个普通类实现接口就必须实现接口的所有方法<不包括默认> ? ? ? ? 4、抽象类实现接口,就可以不用实现接口的方法 ? ? ? ? 5、一个类同时可以实现多个接口
? ? ? ? 6、接口的属性只能是public static final/默认就是? ? ? ?? ? ? ? ? 7、属性访问形式:接口名.属性 ? ? ? ? 8、接口不能继承其他类,但可以继承多个别的接口 ? ? ? ? 9、jdk1.8 接口的修饰符只能为public或default,jdk1.8(包括、之后)接口可以有默认实现方法,静态方法(这个不确定版本) 接口抽象类对比
相同点和不同点相同: ? ? ? ? 1、不可实例化 ? ? ? ? 2、抽象方法都必须被子类覆盖 ? ? ? ? 3、都可以使用extends继承自身(类型)类<接口且可以多继承> 不同点: ? ? ? ? 1、接口属性只能是public static final,Java8接口成员默认情况成员是public,抽象类成员可以是protected、private等,抽象方法不能为私有 ? ? ? ? 2、Java 接口应该使用关键字“implements”来实现;Java 抽象类应该使用关键字“extends”进行扩展 ? ? ? ? 3、接口可以继承接口(一个或多个),抽象类可以继承一个类或实现多接口 ? ? ? ? 4、抽象类除了抽象方法还可以有非抽象方法,接口从java8开始有默认方法和静态方法 ? ? ? ? 5、抽象类可以实现接口,但是接口不能扩展抽象类 注意:如果一个抽象类实现了接口,则不必实际定义接口的方法。该要求可以推迟到继承/子具体类 ...... 详情:Difference and Similarities between Interface and Abstract Class in Java – FreshlyBuilt.com InterfacesAn interface is a?contract: The person writing the interface says, "hey, I accept things looking that way", and the person using the interface says "OK, the class I write looks that way" An interface is an empty shell. There are only the signatures of the methods, which implies that the methods do not have a body. The interface can't do anything. It's just a pattern. Abstract classesAbstract classes, unlike interfaces, are classes. They are more expensive to use, because there is a look-up to do when you inherit from them. Abstract classes look a lot like interfaces, but they have something more: You can define a behavior for them. It's more about a person saying, "these classes should look like that, and they have that in common, so fill in the blanks!". 参考链接: Java中为什么抽象类不能定义抽象的static方法? - 知乎 oop - What is the difference between an interface and abstract class? - Stack Overflow |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 23:48:59- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |