接口interface-实现implements

概念

当一个抽象类中的方法都是抽象的时候,这时可以将抽象类用另一种形式定义和表示,那就是接口interface。

对于接口中常见的成员,而且这些成员都有固定的修饰符:

1.全局变量:public static final

2.抽象方法:public abstract

interface Demo
{
int NUM=4;          //public static final int NUM=4;
void show1();       //public abstract void show1();
void show2();       //public abstract void show2();
}

接口成员都是公共权限。

类与类之间是继承关系,类与接口之间是实现关系。

接口不可以实例化,只能有实现了接口的子类并覆盖了接口中所有的抽象方法后,该子类才可以实例化。

否则,这个子类就是一个抽象类。

class DempImple implements /*实现*/Demo
{
public void show()
}

多实现

在Java中不直接支持多继承,因为会出现调用的不确定性.所以Java将多继承机制进行改良,在java中变成了多实现.

一个类可以实现多个接口

package com.monfolld;

interface A{
    public void show();
}
interface z{
    public int add(int a,int b);
}
class Test implements A,z{
    @Override      //父类接口继承过来
    public void show() {
    }
    @Override
    public int add(int a, int b) {
        return a+b;
    }
}
public class InterfaceDemo {
    public static void main(String[] args){
    Test t=new Test();
    t.show();
    }
}

一个类在继承另一个类的同时,还可以实现多个接口

class Q{
    public void method()
    {}
}
class Test2 extends Q implements A,z{    
    @Override
    public int add(int a, int b) {
        return 0;
    }
    @Override
    public void show() {
    }
}

接口的出现避免了单继承的局限性

接口与接口之间是继承关系,而且接口可以多继承

interface A
{    void show();}
interface B
{    void method();}
interface C extents A,B    //实现接口间的继承
{
     void function();
}

抽象类和接口的区别

相同点:

都是不断向上抽取而来的。

不同点:

1.抽象类需要被继承,而且只能单继承。

   接口需要被实现,而且可以多实现。

2.抽象类可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法。

  接口中只能定义抽象方法,必须由子类去实现。

3.抽象类的继承,是is a 的关系,定义该体系的基本共性内容。

  接口的实现是like a的关系,在定义体系额外功能。

举一个列子:

导盲犬可以由犬和额外功能导盲组成,当我们需要导盲猫是,可以将额外功能实现,从而提高了代码的复用性。

//犬按功能分,有导盲犬,搜救犬
abstract class 犬 {
    abstract void 吼叫();
}
interface 导盲{          //此处接口相当于一个额外功能
    abstract void 导盲();
}
class 导盲犬 extends 犬 implements 导盲{
    public void 吼叫(){
    }
    public void 导盲(){
    }
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值