java interface实现_java笔记--接口interface与实现implements

格式:

interface{}

接口中的成员修饰符是固定的:

1 成员变量:publica static final

2 成员函数:publica abstract

3 发现接口中的成员都是public的

当一个抽象类的方法都是抽象的时候,这时可以将

该抽象类用另一种形式定义和表示,就是 接口 。

定义接口使用的关键字不是class,是interface。

对于接口当中常见的成员:而且这些成员都有固定的修饰符

1 全局常量:public static final

2 抽象方法,public abstract

interface Demo{

public static final int NUM=4;

public abstract void show1();

public abstract void show2();

}

由此得出结论,接口中的成员都是公共的权限。

类与类之间是继承关系,类与接口之间是实现关系implements。

接口不可以实例化,只能由实现了接口的子类并覆盖了接口中所有的抽象方法后,该子类才可以实例化,否则,这个子类就是一个抽象化。

实现例子:

//定义接口

interface Demo{

public static final int NUM=4;

public abstract void show1();

public abstract void show2();

}

//实现接口的子类并覆盖接口中所有的抽象方法

class DemoImpl implements Demo{

public void show1()

{}

public void show2()

{}

}

//将子类实例化,并调用NUM

public class InterfaceDemo {

public static void main(String[] args) {

DemoImpl d=new DemoImpl();

System.out.println(d.NUM);

System.out.println(DemoImpl.NUM);

System.out.println(Demo.NUM);

}

}

运行:

aa21b7170e5c

image.png

接口的出现将“多继承”通过另外一种形式体现出来,即“多实现”。

在java中不直接支持多继承,因为会出现调用的不确定性。所以java将多继承机制进行改良,在java中变成了多实现。

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

多实现例子:

interface A{

public void show();

}

interface Z{

public void show();

}

interface M{

public int add(int a,int b);

}

public class MoreIamplements implements A,Z,M//多实现

{

public void show(){

System.out.print(add(1,2));

}

public int add(int a,int b){

return a+b;

}

}

public class InterfaceDemo {

public static void main(String[] args) {

MoreIamplements m=new MoreIamplements();

m.show();

}

运行:

aa21b7170e5c

image.png

一个类在继承另一个类的同时,还可以实现多个接口。

一个类在继承另一个类的同时,还可以实现多个接口,接口的出现避免了单继承的局限性:

//接口A,M的代码同上

class Q{

public void method(){

System.out.println("继承");

}

}

public class MoreIamplements extends Q implements A,M//继承先增加功能,多实现再扩展其他功能

{

public void show(){

super.method();

System.out.println("实现");

}

public int add(int a,int b){

return a+b;

}

public class InterfaceDemo {

public static void main(String[] args) {

MoreIamplements m=new MoreIamplements();

m.show();

}

}

运行:

aa21b7170e5c

image.png

接口与接口之间可以继承,是继承关系,而且接口可以多继承。原理就是方法体是否有存在。

interface CC{

void show();

}

interface MM{

void show();

}

interface QQ extends CC,MM{

void function();

}

class WW implements QQ{

//因为接口都是抽象的,所以实现要覆盖三个方法。

public void show(){}

public void method(){}

public void function(){}

}

总结:

接口的特点:

1 接口是对外暴露的规则

2 接口是程序的功能扩展

3 接口的出现降低耦合性(联系性)

4 接口可以用来多实现

5 类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口。

6 接口与接口之间可以有继承关系

接口与抽象类的异同点:

相同点:

都是不断向上抽取而来的。

不同点:

1 抽象类需要被继承,而且只能单继承。接口需要被实现,而且可以多实现

2 抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法。

3 抽象类的继承,是 is a关系,在定义该体系的基本共性内容。接口的实现是 like a关系,在定义额外功能。

abstract class 犬{//基本功能

abstract void 吼叫();

}

//abstract class 导盲//会导盲的不止有导盲犬

interface 导盲{//额外功能

abstract void 导盲();

}

class 导盲犬 extends 犬 implements 导盲{

public void 吼叫(){}

public void 导盲(){}

}

接口的应用:

以笔记本为例,为了扩展笔记本的功能,但日后出现什么功能设备不知道。

定义一个规则,只要日后出现的设备符合这个规则就可以了。

规则在java中就是接口。

interface USB{//暴露的规则

public void open();

public void close();

}

public class BookPC {

public static void main(String[] args) {

useUSB(new UPan());//功能扩展

}

//使用规则

public static void useUSB(USB u){//接口类型的引用,用于接收(或者说指向)接口的子类对象 //这里是多态(后面讲)的使用即USB u=new UPan();

u.open();

u.close();

}

}

//一年后买了个U盘 必须得符合规则

//实现规则

//这些设备和电脑的耦合性降低了

class UPan implements USB{//符合规则

public void open(){

System.out.println("upan open");

}

public void close(){

System.out.print("upan close");

}

}

运行:

aa21b7170e5c

image.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值