Java中的接口(Interface)

接口:

它的本质就是体现一个现实世界事物所具有的的额外的扩展功能.

定义格式:

interface  接口名{}  

接口中的方法:

不能有方法体,隐藏public abstract关键字,只能是抽象方法,不能有方法体.

接口的特点:

1.不能实例化(不能创建对象)
2.如何实例化
          接口实例化: 通过接口的子实现类(一定是具体类)进行实例化----接口多态(使用时最多的!)
          子实现类和接口的关系: implements 实现关系
          接口的子实现类如果是抽象类----->肯定要存在抽象类的具体的子类,否则都不能实例化!

接口的子实现类的命名规则:

开发中--->在接口名的后面+Impl:子实现类
                interface Inter{}
//定义一个接口:
interface  Jump{ //跳高接口

   /* public void jump(){
        System.out.println("可以跳高了...");
    }*/
   public abstract  void jump() ;
}
//定义一个跳高猫类
class JumpCat implements Jump{ //实现关系--->关键字:implements

    @Override
    public void jump() {
        System.out.println("猫可以跳高了...");
    }
}
//测试类
public class InterfaceDemo {
    public static void main(String[] args) {
//            创建接口对象
        //Jump jump = new Jump() ;//不能实例化


        //接口多态:----- 之前抽象类多态:Fu fu = new Zi() ; Fu类抽象类
        //接口--->指向子类实现类对象
        Jump jump = new JumpCat() ;
        jump.jump(); //编译看左,运行看右!(接口只能有抽象方法)

    }
}

接口的成员特点:

 1.接口中的成员方法:只能是抽象方法,默认的修饰符:public abstract(可以省略不写)     
 2.接口没有构造方法
 3.接口的成员变量只能是常量:存在默认修饰符:public static final (可以省略不写)

接口和抽象类的区别

(1)成员的区别
抽象类:
 成员变量:既可以是变量,也可以是常量
 成员方法:可以存在抽象方法(必须携带abstract关键字),也可以有非抽象方法
 构造方法:存在无参/有参构造方法,---目的需要给数据进行初始化,分层初始化
接口:
 成员变量:只能是常量,存在默认的修饰符public static final修饰
 成员方法:只能是抽象方法:存在默认的修饰符 public abstract
 构造方法:没有
(2)关系的区别
类与类之间: 继承关系,只支持单继承,不支持多继承,但是可以多层继承
类与接口:   实现关系,一个类继承另一个类的同时可以实现多个接口,中间逗号隔开
接口与接口: 继承关系,可以支持单继承,也可以支持多继承,多层继承

(3)设计理念
抽象类:----->强制子类必须完成的事情,由于存在继承关系,体现的是一种"is a"的关系.
接口-------->体现某个事物额外的功能,谁实现该接口就具备该功能,体现的是一种"like a"的关系.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值