第三章java中的接口|
来源:网络
编辑:青釉
时间:2022-06-19
在上一篇文章中,我们看到了 java 中提供部分抽象的抽象类。接口是java的核心部分之一,用于实现完全抽象。 接口一般用于为类提供契约来实现。接口没有任何方法的实现。一个类实现了一个接口,从而继承了接口的抽象方法。所以它是一种签订合同,你同意如果你实现了这个接口,那么你必须使用它的方法。它只是一个模式,它本身不能做任何事情。
默认情况下,接口中的所有方法都是 public 和 abstract 并且所有变量都是 public static final。
java中接口的语法:
/**
*
* @author Arpit
* All the methods in interface are public abstract by default
*
*/
interface InterfaceName
{
void method1();
int method2();
}
例如: 假设你有 Room 类作为你的 pojo 类。现在你希望你所有的房间都是可装饰的,所以你可以只实现可装饰的接口并实现装饰方法。
package com.arpit.java2blog;
interface Decorable
{
void decorate();
}
public class Room implements Decorable{
@Override
public void decorate() {
System.out.println("Decorating the room");
}
}
接口和继承:
您也可以根据接口创建继承。一个接口只能扩展(扩展)另一个接口。
package com.arpit.java2blog;
interface interface1
{
void method1();
}
interface interface2 extends interface1
{
void method2();
}
public class ConcreteClass implements interface2{
@Override
public void method1() {
System.out.println("In method 1");
}
@Override
public void method2() {
System.out.println("In method 2");
}
}
关于java接口的要点:
- 您需要使用“接口”关键字来声明接口。
- 一个接口不能有任何方法实现。
- 接口方法默认是公共抽象的。
- 接口变量默认为 public static final。
- 类使用implements关键字来使用接口。
- 一个接口不能扩展另一个类位可以使用 extends 关键字扩展另一个接口。
- 一个类需要重写接口的所有方法,除非它是抽象类,否则会出现编译错误。
- 您需要非常仔细地设计界面,因为一旦您在业务逻辑中使用过,您将无法从界面中删除或添加方法。
例子:
让我们创建一个名为 Room.java 的接口。
package com.arpit.java2blog;
public interface Room {
void showRoom();
}
创建名为“SimpleRoom”的类
package com.arpit.java2blog;
public class SimpleRoom implements Room {
@Override
public void showRoom() {
System.out.println("Showing simple room");
}
}
创建名为“SpecialRoom”的类
package com.arpit.java2blog;
public class SpecialRoom implements Room {
@Override
public void showRoom() {
System.out.println("Showing special Room");
}
}
创建名为“RoomInterfaceMain”的主类
package com.arpit.java2blog;
public class RoomInterfaceMain {
public static void main(String[] args) {
// You can assign interface reference variable to concrete implementation
Room room=new SimpleRoom();
room.showRoom();
System.out.println("=================");
// You can easily change implementation
room=new SpecialRoom();
room.showRoom();
}
}
当你运行上面的程序时,你会得到下面的输出:
Showing simple room
=================
Showing special Room
Java 8 接口:
JDK 8 在接口中进行了重大更改。
Showing simple room
=================
Showing special Room
这就是java中的接口。
相关文章:
- [其它]第六章JavaFutureTask示例|
- [其它]第六章JavaScheduledThreadPoolExecutor示例|
- [其它]第六章使用Callable和Future的JavaExecutorService示例|
- [其它]第六章JavanewCachedThreadPool示例|
- [其它]第六章JavanewFixedThreadPool示例|
- [其它]第五章在java中使用3个线程打印序列|
- [其它]第五章java中notify和notifyAll的区别|
- [其它]第五章我们可以在java中启动一个线程两次吗|
- [其它]第五章java中的对象级锁定与类级锁定|
- [其它]第五章Java线程连接示例|
相关推荐:
- [其它]第三章java中的抽象类|
- [其它]第四章java中的TreeMap与示例|
- [其它]第四章java中的hashcode()和equals()方法|
- [其它]第六章JavaFutureTask示例|
- [其它]计算机组成原理PDF扫描格式电子版百度云网盘下载
- [其它]程序设计语言概念(第9版)[Robert W. Sebesta]pdf格式电子版百度云网盘下载[53.8M]
- [其它]程序员必读之软件架构[Simon Brown]pdf格式电子版百度云网盘下载[41.6M]
- [其它]程序员的思维修炼 开发认知潜能的九堂课[Andy Hunt]pdf格式电子版百度云网盘下载
- [其它]程序员的职业素养[Robert C. Martin]pdf格式电子版百度云网盘下载[21.6M]
- [其它]程序员教程(第3版)[张淑平]pdf格式电子版百度云网盘下载[136.5M]
栏目分类
最新文章
热门文章
- 计算机组成原理PDF扫描格式电子版百度云网盘下载
- 硅谷之谜[吴军]pdf格式电子版百度云网盘下载[59.5M]
- 自选基金助手,一款Chrome扩展程序
- 七周七语言 理解多种编程范型[Bruce A. Tate]pdf格式电子版百度云网盘下载[9M]
- 系统集成项目管理工程师考试考眼分析与样卷解析(2014版)[软考新大纲研究组]
- 程序员面试金典(第5版)[Gayle Laakmann McDowell]pdf格式电子版百度云网盘下载[81.5M]
- 创业维艰 如何完成比难更难的事[Ben Horowitz]pdf格式电子版百度云网盘下载[65.3
- 程序员的思维修炼 开发认知潜能的九堂课[Andy Hunt]pdf格式电子版百度云网盘下载
- 图灵的秘密 他的生平、思想及论文解读[Charles Petzold]pdf格式电子版百度云网盘下
- OCP OCA认证考试指南全册:Oracle Database 11g(1Z0-051、1Z0-052、1Z0-053)[John Watson]pdf格式