接口的基本操作

/*
抽象类和接口的异同点:

相同点:
都是不断向上抽取而来的。

不同点:
1,抽象类需要被继承,而且只能单继承。
接口需要被实现,而且可以多实现。
2,抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法。
接口中只能定义抽象方法,必须由子类去实现。
3,抽象类的继承,是is a关系,在定义该体系的基本共性内容。
接口的实现是 like a 关系,在定义体系额外功能。

犬按功能分:有导盲犬,搜爆犬。

abstract class 犬
{
abstract void 吼叫();
}

//abstract class 导盲 //不合适
interface 导盲
{
abstract void 导盲();
}

class 导盲犬 extends 犬 implements 导盲
{
public void 吼叫(){ }
public void 导盲(){ }
}
*/

package demo.oo;
/*
abstract class AbsDemo
{
	abstract void show1();
	abstract void show2();
}
当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用
另一种形式定义和表示,就是 接口 interface。
*/

//接口
interface Port {
    //固定的修饰符
    public static final int NUM = 4;

    public abstract void show1();

    public abstract void show2();
}

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

一个类可以实现多个接口。
*/
interface PortA {
    public abstract void show();
}

interface PortB {
    public abstract void show();
}

//接口间继承 多继承
interface PortC extends PortA, PortB {
}

//接口实现类
class DemoImpl implements Port {
    //    public static final int NUM = 4;  //存在
    @Override
    public void show1() {
    }

    @Override
    public void show2() {
    }
}

//多实现
class MoreImpl implements PortA, PortB {
    @Override
    public void show() {
        //同时覆盖A,B
        System.out.println("接口的多实现");
    }
}

//一个类在继承另一个类的同时,还可以实现多个接口。
class Parent {
    public void method() {
    }
}

class ChildImpl extends Parent implements PortA, PortB {  //接口的出现避免了单继承的局限性
    public void show() {
        System.out.println("多个接口");
    }
}

class ThreeImpl implements PortC {
    //包含所有接口的方法A,B,C
    @Override
    public void show() {
        System.out.println("接口间继承实现");
    }
}

class Interface {
    public static void main(String[] args) {
        //接口实现
        DemoImpl d = new DemoImpl();
        System.out.println(d.NUM);
        System.out.println(Port.NUM);
        System.out.println(DemoImpl.NUM);

        //多实现
        MoreImpl m = new MoreImpl();
        m.show();

        //多接口
        ChildImpl c = new ChildImpl();
        c.show();

        //接口继承接口
        ThreeImpl t = new ThreeImpl();
        t.show();
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值