| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 抽象和接口 -> 正文阅读 |
|
[Java知识库]抽象和接口 |
1.抽象抽象类表示没有足够的信息去描述具体的事物,所以就有了抽象类 抽象类关键字? ?abstarct? ,抽象类语法; ? ? ? ??[访问修饰符] abstract class 类名{} 抽象类的特点: ? ? ? ? 抽象类可以定义构造方法,普通的、静态的属性和普通方法、静态方法,但是不能创建抽象类对象 ????????抽象类中可以定义抽象方法,但是抽象方法只能有方法的声明,不能有方法体,而且抽象方法必须要由子类来实现。???????? ? ? ? ? 抽象方法语法; ????????????????public abstract 返回值类型 方法名(参数列表); ????????如果子类没有实现父类中的抽象方法,那么子类也要定义成抽象类,由子类的子类来负责实 现,以此类推。 注意; ? ? ? ? 一个类中,抽象类中不一定有抽象方法,但是若这个类中有抽象方法,那么这个类一定是抽象类。 2.1接口????????接口使用关键字interface来定义, 语法: ???????? [访问修饰符] interface 接口名{} 接口特点; ? ? ? ? 一,接口中不能有构造方法,也不能实例化 ????????二,接口中定义的所有的元素,都是public 的 ? ? ? ? 三,接口中定义的变量都是常量也就是最终值,默认语法都是public static final修饰的,所以创建变量可以把public static final省略。 ? ? ? ? 四,接口中只能定义抽象方法,但是JDK8以后新增了默认方法、静态方法。 ????????五,默认方法都是由default关键字修饰,有方法体,通过接口实现类的对象调用, ????????语法: ???????????????? [访问修饰符] default 返回值类型 方法名(参数列表){ 方法体 } ? ? ? ? 六,静态方法由static修饰,在调用时通过接口名称来调用 ????????语法; ? ? ? ? ? ? ? ? 接口名.方法名(); ? ? ? ? 七,默认方法如果有需要,可以在继承类对其重写,但是继承类重写默认方法时不用在加default关键字。 ? ? ? ? 八,如果是有两个接口的静态方法一样时,并且一个实现类同时实现了这两个接口,此时并不会产生错误,因为实现接口并不是根据静态方法名而是根据接口名来实现的,所以对于JVM来说是可以区分的,但是如果两个接口中定义了一模一样的默认方法,并且一个实现类同时实现了这两个接口,那么必须在实现类中重写默认方法,否则编译失败。 ? ? ? ? 九,接口可以实现多继承,依然是通过extends 关键字,多个接口之间使用逗号分隔即可。如果继承的多个接口中,有一模一样的默认方法,需要在子接口中对默认方法进行重写。 ?2,2实现接口implements????????接口需要由类来实现,关键字implements(类似与继承的extends关键字) ????????语法: ????????????????[访问修饰符] class 类名 implements 接口1,接口2,...{ } 实现了接口,就要实现接口中所有的抽象方法,否则当前类就要定义成抽象类。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 4:04:12- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |