java基础之----接口

abstract class AbsDemo {
abstract void show1();
abstract void show2();
}

当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用另一种形式定义和表示,就是接口interface.
定义接口时不使用class,使用interface.
对于接口当常见的成员,都是有固定的修饰符
全局常量:public static final(接口中可省略不写)
抽象方法:public abstract(接口中可省略不写)
因此接口的成员都是公共的权限。

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

类与类之间是继承关系,类与接口之间直接是实现关系。
接口不可以实例化。只能由实现了接口的子类并覆盖了接口中所有的抽象方法后,该子类可以实例化。否则,这个子类就是一个抽象类。

class DemoImpl implements Demo {
public void show1(){}
public void show2(){}

在java中不直接支持多继承,因为会出现调用的不确定性。
一个类可以实现多接口。

interface A{
    public  void show();
}
interface B{
    public int add(int a,int b);
    }
class Test implements A,B {  //多实现
    public int add(int a,int b) 
    {
        return a+b+3;
    }
    public void show()
    {
    }
}

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

package com.aoboco.com;


interface A{
    public  void show();
}
interface B{
    public int add(int a,int b);
    }
class Q 
{
    public void method()
    {
    }
}
class Test implements A,B {  
    public int add(int a,int b) 
    {
        return a+b+3;
    }
    public void show()
    {
    }
}
abstract class Test2 extends Q implements A,B
{

}

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

package com.aoboco.com;

interface CC
{
    void show();
}
interface MM
{
    void method();
}
interface QQ extends CC,MM 
//接口情与接口之间椒继承关系,而且接口可以多实现
{
    void function();
}
 class WW implements QQ
{
    public void show(){}
    public void method(){}
    public void function(){}
}

class duo2
{
    public static void main(String[] agrs)
    {

    }
}

抽象类和接口的异同点:
相同点:都是不断向上抽取而来的。
不同点:

  1. 抽象类需要被继承,而且只能单继承。接口需要被实现,而且可以多实现。
  2. 抽象类中可以定义抽象方法和非抽象方法,接口中只能定义抽象方法,必有子类去实现
  3. 抽象类的继承是is a关系,在定义该体系的基本共性内容,接口的实现是linke a 关系,在定义体系额外功能。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值