Java:接口的定义与使用

//【接口】
//抽象类与普通类相比最大的特点是约定了子类的实现要求,
//但是抽象类存在单继承局限。如果要约定子类的实现要求并避免单继承局限就需要使用接口。
//接口的基本概念,接口就是抽象方法和全局常量的集合,在Java中接口使用interface关键字定义
//子类如果要想使用接口,就必须使用implements关键字来实现接口
//一个子类可以实现多个接口,可以使用接口来实现多继承的概念
//对于接口的子类(不是抽象类)必须覆写接口中的全部抽象方法。
//随后可以利用子类的向上转型通过实例化子类来得到接口的实例化对象。
//一个抽象类可以使用implements实现多个接口,但是接口不能继承抽象类

//eg:
//接口1
interface  Imessage{
    public static final  String MSG="i am a boy";  //定义一个全局常量
    public  abstract void print();  //定义一个抽象方法
}
//接口2
interface  INews{
    public abstract String getNews(); //定义一个抽象方法
}

//实现多继承
class MessageImpl implements  Imessage,INews{
    //覆写接口1中的抽象方法
    public void print(){
        System.out.println(Imessage.MSG);
    }
    //覆写接口2中的抽象方法
    public String getNews(){
        return Imessage.MSG;
    }
}
//接口的使用限制:只允许使用public权限
//eg:
interface  IMessage{
   public static  final  String MSG="this is a msg";
   public abstract  void println();
}
//可以简化为
interface  Imessage{
    String MSG="this is a msg";
    void print();
}
//当一个子类即需要实现接口又需要继承抽象类时,请先使用extends继承一个抽象类,而后使用implements 实现多个接口。
//eg:
interface IMessage{
    public void print();
}
abstract class News{
    public abstract  void getNews();
}
class MessageImpl extends News implements IMessage{
    public void print() {
        System.out.println("I am a biter") ;
    }
    public void getNews() {
        System.out.println("I am News") ;
    }
}
public class Test {
    public static void main(String[] args) {
        IMessage m = new MessageImpl();
        m.print();
        //MessageImpl是抽象类和接口的共同子类
        News news = (News) m;
        news.getNews();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值