java的接口怎么写_【Java基础】java接口怎么写 - 收获啦

本文介绍了Java接口的概念、好处及如何使用。通过示例展示了如何定义接口、类实现接口、接口继承、接口的多态性以及接口与抽象类的区别。同时提到了常量接口和标记接口的使用场景。

思维导图

35241c4f068d4cca99cdca4582b65319.png

q-32198.html

q-32198.html一、什么是接口

接口代表一种能力或约束

Java为单继承,当父类的方法种类无法满足子类需求时,可实现接口扩充子类能力。interface MyInterface {

void method();}123接口没有构造方法

只能定义公开静态常量、公开抽象方法

使用 interface 关键字定义接口接口的好处程序耦合度降低

更自然的使用多态

设计与实现完全分离

更容易搭建程序框架

更容易更换具体实现

q-32198.html

q-32198.html二、接口与类

q-32198.html

q-32198.html2.1 类实现单个接口

定义一个接口/**

* 接口。

* @author 张宝旭

*/public interface MyInterface {

// 定义公开静态常量

public static final String NAME = "zbx";

Integer AGE = 21; // 前面的 public static final 可以省略,默认存在

// 定义公开静态方法

public abstract void show();

void run(); // 前面的 public abstract 可以省略,默认存在}12345678910111213

实现接口

使用 implements 实现接口,必须重写接口中的所有方法/**

* 接口实现类。

*

* @author 张宝旭

*/public class MyInterfaceImpl implements MyInterface{

@Override

public void show() {

System.out.println("show");

}

@Override

public void run() {

System.out.println("run");

}}12345678910111213141516

测试

使用接口去创建一个实例:同父类一样,接口也可声明为引用,并指向实现类对象。仅可调用接口中所声明的方法,不可调用实现类中独有的方法

可强转回实现类本身类型,进行独有方法调用/**

* 接口测试。

*

* @author 张宝旭

*/public class MyInterfaceTest {

public static void main(String[] args) {

MyInterface myInterface = new MyInterfaceImpl();

myInterface.show();

myInterface.run();

}}123456789101112

q-32198.html

q-32198.html2.2 类实现多个接口

实现多继承接口:中间用逗号隔开/**

* 接口实现类。

*

* @author 张宝旭

*/public class MyInterfaceImpl implements MyInterface, Flyable{

@Override

public void show() {

System.out.println("show");

}

@Override

public void run() {

System.out.println("run");

}

@Override

public void fly() {

System.out.println("fly");

}}123456789101112131415161718192021

q-32198.html

q-32198.html2.3 接口继承接口/**

* 接口。

* @author 张宝旭

*/public interface MyInterface extends Flyable, Swimable{}123456

q-32198.html

q-32198.html2.4 接口的多态

使用不同引用创建的对象,访问权限也不同/**

* 接口测试。

*

* @author 张宝旭

*/public class MyInterfaceTest {

public static void main(String[] args) {

MyInterface myInterface = new MyInterfaceImpl();

myInterface.run(); // 只能调用run()方法

Flyable flyable = new MyInterfaceImpl();

flyable.fly(); // 只能调用fly()方法

Swimable swimable = new MyInterfaceImpl();

swimable.swim(); // 只能调用swim()方法

MyInterfaceImpl myInterface1 = new MyInterfaceImpl();

myInterface1.run(); // 可以调用全部方法,包括自己特有的方法

myInterface1.fly();

myInterface1.swim();

myInterface1.eat();

}}1234567891011121314151617181920212223

q-32198.html

q-32198.html2.5 常量接口

将多个常用于表示状态或固定值的变量,以静态常量的形式定义在接口中统 一管理,提高代码可读性public interface ConstInterface {

String NAME = "zbx";

Integer AGE = 21;}1234

q-32198.html

q-32198.html2.6 标记接口

不实现任何内容,仅作为标记public interface LabelInterface {}12

q-32198.html

q-32198.html三、接口与抽象类的区别

相同可编译成字节码文件

不能创建对象

可以作为引用类型

具备Object类中所定义的方法

不同接口中的变量只能定义成 public static final 类型的,抽象类中的变量与普通类相同

接口中的方法都为抽象方法,抽象类中可以有非抽象方法

接口中没有构造方法、动态代码块、静态代码块

接口中JDK1.8之后可以定义static方法和default方法详细讲解:实例分析Java接口和抽象类的区别,以及如何去使用它们(JDK1.8 新版本)

q-32198.html

q-32198.html四、接口的规范ᕙ༼ຈلﻝ͜ ຈ༽ᕗI’m the power

当定义的接口表示一种能力时,应定义成以 able 结尾的名字/**

* @author 张宝旭

*/public interface Flyable {

void fly();}123456

任何类在实现接口时,必须实现接口中所有的抽象方法

实现接口中的抽象方法,访问修饰符必须是 public

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值