侵入式接口&非侵入式接口

本文探讨了侵入式接口,如Java和C++中的实现方式,以及Go语言中的非侵入式接口实现。通过代码示例展示了两种接口的不同之处,作者认为Go语言中的做法有些不科学。
摘要由CSDN通过智能技术生成

 

侵入式接口:例如Java、C++语言主要表现在实现类需要明确指出自己实现了某个接口.

代码示例
//定义一个接口

interface Person{
    void sleep();
    void run();
    void eat();
}


//创建一个Student类 实现Person接口

class Student implements Person{
    void sleep(){
        sout("学生睡觉了...");
    }
    void run(){
        sout("学生跑步了...");
    }
    void eat(){
        sout("学生吃饭了...");
    }
}


//创建学生类对象调用这些方法

Student student = new Student();
student.sleep();

非侵入式接口:在Go中,一个类(sturct) 只需要实现接口的所有函数,我们就说这个类实现了该接口.
代码示例:

//定义一个struct 
type Student struct{}


//让类去实现一些方法

func (s * Student) run(){
    fmt("学生跑步了...")
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值