接口基础知识

接口定义

抽象类中的普通方法存在安全以及隐私问题
可通过接口进行对外隐藏全部实现细节
原始定义接口只包含 抽象方法与全局变量
JDK1.8之后,Lambda表达式引入,接口定义得到加强
接口中可定义普通方法或静态方法
但是设计时应以抽象方法和全局变量为主

由于类名与接口名定义要求相同
接口名须在前加I(interface)---->Iname
接口实现的子类用Impl(Implements)为后缀---->nameImpl

interface IGoods{
    public static final String MSG = "Get it";
    public abstract String getMsg();
}  //完整定义
/*
interface IGoods{
    String MSG = "Get it";
    String getMsg();
}  ---简化定义
*/
//!!!接口中方法及变量访问权限默认为public,即覆写时也只能使用public
interface IChannel{
    public abstract boolean connect();
}
class GoodsImpl implements IGoods,IChannel{
    @Override
    public String getMsg() {
        if (this.connect()) {
            return "It's something wrong with U";
        } else
            return "It's OKkkkk";
    }
    @Override
    public boolean connect(){
        System.out.println("Connect Over");
        return true;
    }
}

接口使用原则:
接口需要被子类实现(implements)且一个子类可实现多个父接口(“多继承”)
子类(非抽象类)需要覆写接口中的全部抽象方法
接口对象,可通过利用子类的向上转型实现实例化

Goods msga = new GoodsImpl();
        IChannel msgb = (IChannel) msga;
        System.out.println(msgb.connect());

注意事项:
由于接口将Java的类的单继承限制拓宽,则可以进行两个不同接口的关联及“转换”
通过接口的共同实例子类
接口不可继承其他类
– Interface不是Object的子类
– Interface可被Object接收
– Object类对象可接收所有数据类型
(包含基本数据类型类对象接口对象数组

IGoods iGoods = new GoodsImpl();
        Object object = iGoods;
        IChannel channel = (IChannel) object;
        System.out.println(channel.connect());

接口描述的是公共定义标准,则接口之中所有抽象方法访问权限均为public
接口继承类可为抽象类,可继承多个父接口
普通类仅能继承一个父类 且 需要先继承再实现
!!!
接口中的抽象方法可省略abstract,但抽象类中不可省略
虽然接口无法继承父类,但是接口可通过extends继承若干父接口(接口的多继承)

interface Iserver extends IChannel,IGoods{}

其实例子类需将其所继承的父类的所有方法进行覆写

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值