21.Java接口(interface)

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

2.定义格式:    interface  接口名{}  

3.接口中的方法:不能有方法体,隐藏public abstract关键字,只能是抽象方法,不能有方法体.

4.接口的特点: 

(1)不能实例化(不能创建对象)

如何实例化?

解决方法:接口实例化: 通过接口的子实现类(一定是具体类)进行实例化

接口多态(使用时最多的)

5.子实现类和接口的关系: implements: 实现关系

6.接口的子实现类如果是抽象类,肯定要存在抽象类的具体的子类,否则都不能实例化

   接口的子实现类的命名规则:在接口名的后面+Impl:子实现类

   例如:

 interface Inter{}

 class InterImpl  implements Inter{}

7.接口的初步了解(以猫为例) 

//定义一个接口:跳高接口
interface  Jump{ 

   public abstract  void jump() ;
}

//定义一个跳高猫类
class JumpCat implements Jump{ 

    @Override
    public void jump() {
        System.out.println("猫可以跳高了");
    }
}

//测试类
public class InterfaceDemo {
    public static void main(String[] args) {

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

    }
}

8.接口的成员特点

 (1)接口中的成员方法:只能是抽象方法,默认的修饰符:public abstract(可以省略不写).

 (2)接口没有构造方法.

 (3)接口的成员变量只能是常量:存在默认修饰符:public static final (可以省略不写).

9.接口和抽象类的区别

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

(3)设计理念
抽象类:----->强制子类必须完成的事情,由于存在继承关系,体现的是一种"is a"的关系.
接口-------->体现某个事物额外的功能,谁实现该接口就具备该功能,体现的是一种"like a"的关系.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值