当前位置:首页 > 学习笔记 > Java教程 > Java教程:面向对象之Java接口

Java教程:面向对象之Java接口

刘广法2022年03月21日 13:37:25Java教程8240
Java教程:面向对象之Java接口-第1张图片-刘广法IT博客

Java接口的相关描述:

Java中关于接口的特点:

1、接口中的所有方法都是共有的抽象的方法,public abstract 可以省略

2、在接口中,可以定义属性,属性一定是公有的(public)静态(static)常量(final)。


接口不能实例化对象,但可以实现对象,一个实现接口的类必须实现接口里面所有方法,否则就必须声明抽象类。

接口类型可以声明一个变量,他们可以成为一个空指针,或者被绑定在一个以此接口实现的对象。


final 关键字:表示最终的

1、当修饰类的成员属性,表示最终的变量,也就是不能改变的量——常量,常量要么有初始值,要么通过构造方法赋值。

2、当修饰类的成员方法,表示最终的方法。也就是不能重写的方法。

3、当修饰类是,表示最终的类。也就是不能继承的类。

static 关键字:表示静态的,隶属于类不属于实例,属于类

如何访问static修饰的类的成员属性

类.成员属性

如何访问static修饰的类的成员方法

类.成员方法

在同一类中,既有静态(static)的成员和非静态的成员

静态成员不能访问非静态成员。

非静态成员可以访问静态成员。

implements 关键字:表示实现一个接口

一个类实现接口,需要把接口中的方法提供实现。


接口和抽象类的关系:

1、由于接口本身不是类,所以,接口不具备类的特性。抽象类是类,拥有类的特性,只是不能 实例化。

2、接口中的方法都是抽象方法,而抽象类,可以拥有抽象方法。

3、类可以实现多个接口。多个接口之间,使用逗号分隔。

4、接口可以继承接口。一个接口,可以继承多个接口。使用extends关键字。

5、类是单继承、多实现。

Java抽象类、类、Java接口的对比:

1、是否有具体的方法体:Java抽象类、类可以存在具体的方法体,而Java接口不可以存在具体的方法体(接口中方法必须位抽象方法)。

2、是否能够实例化对象:接口、抽象类不能实例化对象,而类可以实例化对象。

3、是否有构造方法:类、抽象类有构造方法,而接口不存在构造方法。

4、存在成员变量的类型:抽象类、类的成员属性可以是任何类型的,而Java接口 public static final  类型的。

5、Java接口可以存静态方法和静态变量(用 static 修饰的),而在Java接口中不能存在静态方法和静态变量。

6、一个类可以继承一个抽象类,而一个类可以继承多个Java接口。

7、接口不是被继承,是被类实现,接口支持多继承。

Java 8 之后 接口中可以使用 default 关键字修饰的非抽象方法。

注:JDK 1.8 以后,接口里可以有静态方法和方法体了。

注:JDK 1.8 以后,接口允许包含具体实现的方法,该方法称为"默认方法",默认方法使用 default 关键字修饰。更多内容可参考 Java 8 默认方法。

注:JDK 1.9 以后,允许将方法定义为 private,使得某些复用的代码不会把方法暴露出去。更多内容可参考 Java 9 私有接口方法。

接口的声明:

[可见度] interface 接口名称 [extends 其他的接口名] {

        // 声明变量

        // 抽象方法

}

接口的实现

当类实现接口的时候,类要实现接口中所有的方法。否则,类必须声明为抽象的类。

类使用implements关键字实现接口。在类声明中,Implements关键字放在class声明后面。

重写接口中声明的方法时,需要注意以下规则:

类在实现接口的方法时,不能抛出强制性异常,只能在接口中,或者继承接口的抽象类中抛出该强制性异常。

类在重写方法时要保持一致的方法名,并且应该保持相同或者相兼容的返回值类型。

如果实现接口的类是抽象类,那么就没必要实现该接口的方法。

在实现接口的时候,也要注意一些规则:

一个类可以同时实现多个接口。

一个类只能继承一个类,但是能实现多个接口。

一个接口能继承另一个接口,这和类之间的继承比较相似。


文章原创作者:刘广法,感谢转载,网站地址:https://liuguangfa.com/

扫描二维码推送至手机访问。

版权声明:本文由刘广法博客发布,如需转载请注明出处。

本文链接:https://liuguangfa.com/java/133.html

分享给朋友:

“Java教程:面向对象之Java接口” 的相关文章

Java教程 第四节:流程控制语句总结

流程控制语句:一、顺序结构顺序结构:按照写代码的顺序 一次执行二、分支结构1、if语句if(条件){     语句块 }2、if...else...语句if(条件){     语句块 }else{  ...

eclipse 自动提示功能的实现

eclipse 自动提示功能的实现

之前用的版本都是有提示的,最近安装的最新版没有提示,今天就设置让自动提示出来第一步:windows”->"preferences",弹出preferences设置窗口。第二步:在preferences中找到Java,依次展开列表"Editor"->...

eclipse的快捷键功能

eclipse的快捷键功能

有一些快捷键是可以修改的,具体修改过程如图下:修改快捷的详细步骤:1、使用快捷键调出快捷键列表进行查看:快捷键列表调用:shift + ctrl + L2、window->preferences->general->keys(或直接搜索keys)快捷键列表:shuft + ctrl...

eclipse 修改默认的工作空间以及修改个人工作空间的编码

eclipse 修改默认的工作空间以及修改个人工作空间的编码

一、修改工作空间workspaceFile-->Awitch Workspace-->Other,就打开下面的图,然后选择我标起来的就可以新建工作空间了。二、设置工作空间workspace的编码为UTF-8设置完你所用的工作空间也就是上一步后,需要修改工作空间的编码为UTF-8步骤如下:...

Java练习:找出三位数中所有的水仙花的值

找到三位数中所有为水仙花的值1、水仙花:百位数的立方+十位数的地方+个位数的立方等于这个数本身。2、三位数中。具体的步骤:public static void main(String[] args) { int i =&nbs...

Java练习:从控制台输入一个年份,统计输入的年份到现在一共多少天?

从控制台输入一个年份,统计输入的年份到现在一共多少天?注意事项:1、平年365天,闰年十366天。2月份平年28天,2月份闰年29年。2、今年2022年3月14日3、闰年判断:能够被四百整数;能被4整数但不能被100整数public static void main(S...

Java练习:打印出所有3位数的素数

课堂练习:打印出所有3位数的素数。素数:只能被1和其本身整除的数 public static void main(String[] args) { // 打印三位数的素数,素数只能被1和本身整数的数。 for (int...

Java学习 第五节:break和continue关键字

break和continue关键字break:表示中断,退出。退出当前一层循环。一旦break,后面的语句将不会得到执行。continue:中断本次循环,直接进行下一次的循环。continue后面的语句将不会得到执行。...

Java教程 第六节:数组

数组数组:简单来说,就是一组相同数据类型的数。float[] score = new float[6];索引或者下标:必须是整数,不能为负。最大下标等于数组长度-1。float[0],就是float类型数据score的第一个项。数组的下标结合循环,可以简化对批...

Java练习:控制台输入十个成绩,编程对这些成绩取平均值,并判断出成绩最大值和成绩最小值

有控制台输入十个成绩,编程对这些成绩取平均值,并判断出成绩最大值和成绩最小值 public static void main(String[] args) { // 有控制台输入十个成绩,编程对这些成绩取平均值,并判断出成绩最大值和成...

Java教程第七节:选择排序法和和冒泡排序法

选择法排序:分为若干轮比较,每一轮找出一个最大值。刘广法整理思路:假设有数组{ 1, 2, 3, 5, 98, 24, 6, 456, 14 },假设第一个数字最大,然后从第二个开始依次和第一个比,如...

Java教程 第八节:方法

定义方法:返回值类型 函数名称(函数列表){       // 函数体,可以执行代码,可以是0行或者多行。}我们常见的 main 方法就是一个在Java中最常见的方法:public static viod main(String []arg...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。