java接口设计_Java接口实现

本文介绍了Java中类如何实现接口以及实现接口的规则。一个类可以实现多个接口,每个接口定义的方法必须在实现类中提供实现,否则类需要声明为抽象。接口的默认方法会被继承,但静态方法不会。此外,接口的异常约束在覆盖方法时可以被忽略。类实现接口时,可以部分实现接口方法,未实现的方法则需使类声明为抽象。
摘要由CSDN通过智能技术生成

实现接口

接口指定对象必须提供的协议。类可以提供接口的抽象方法的部分实现,并且在这种情况下,类必须将自身声明为抽象。

实现接口的类使用“implements”子句来指定接口的名称。“implements”子句由关键字implements,后跟逗号分隔的接口类型列表组成。

一个类可以实现多个接口。实现接口的类声明的一般语法如下:

class implements {

// Class body goes here

}

假设有一个Circle类。

public class Circle implements Shape {

void draw(){

System.out.println("draw circle");

}

}

实现接口的类必须重写以实现接口中声明的所有抽象方法。 否则,类必须声明为abstract。接口的默认方法也由实现类继承。植入类可以选择不需要重写默认方法。接口中的静态方法不会被实现类继承。

下面的代码定义了两种引用类型,一种来自Circle类,另一种来自接口类型。

Circle c = new Circle();

Shape shape = new Circle();

变量c是Circle类型。它指的是Circle对象。第二个赋值也是有效的,因为Circle类实现了Shape接口,而Circle类的每个对象也都是Shape类型。

实现接口方法

当一个类完全实现了一个接口时,它为所实现的接口的所有抽象方法提供一个实现。接口中的方法声明包括方法的约束。例如,方法声明中的throws子句是方法的约束。

import java.io.IOException;

interface Shape {

void draw(double amount) throws IOException;

}

class Main implements Shape{

@Override

public void draw(double amount) {

// TODO Auto-generated method stub

}

}

Main的代码是有效的,即使它丢弃了throws子句。当类覆盖接口方法时,允许删除约束异常。如果使用Shape类型,必须处理IOException。

import java.io.IOException;

interface Shape {

void draw(double amount) throws IOException;

}

class Main implements Shape{

@Override

public void draw(double amount) {

// TODO Auto-generated method stub

}

public void anotherMethod(){

Shape s = new Main();

try {

s.draw(0);

} catch (IOException e) {

e.printStackTrace();

}

draw(0);

}

}

实现多个接口

一个类可以实现多个接口。类实现的所有接口都在类声明中的关键字implements之后列出。

通过实现多个接口,类为所有接口中的所有抽象方法提供实现。

interface Adder {

int add(int n1, int n2);

}

interface Subtractor {

int subtract(int n1, int n2);

}

class Main implements Adder, Subtractor {

public int add(int n1, int n2) {

return n1 + n2;

}

public int subtract(int n1, int n2) {

return n1 - n2;

}

}

部分实现接口

类不必为所有方法提供实现。如果一个类不提供接口的完全实现,它必须声明为abstract。

interface Calculator {

int add(int n1, int n2);

int subtract(int n1, int n2);

}

abstract class Main implements Calculator{

public int add(int n1, int n2) {

return n1 + n2;

}

}

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值