面向对象——接口

 一、接口:

Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

/*
接口的由来。
*/

abstract class Demo 

{
   abstract void show1();
   abstract void show2();


}


/*

抽象类中可包含抽象方法和非抽象方法。
当一个类中只有抽象方法时,便可以把这个类定义成接口。用关键字interface定义。
*/

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

1、全局常量:publlic static final

2、抽象方法: public  abstract

由此得出结论,接口中的成员的都是公共的权限。

 

interface Demo
{

   public static final int num=4;
  
   
    public abstract void show1();
    public abstract void show2();

}

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

接口不可以实例化。

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

interface Demo
{
  
     public  abstract  void show1();
     public  abstract  void show2();

}

class DemoImpl implements Demo
{
    public  void show1()
    {

    }
    public void show2()
    {

     }

}

二、多继承

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

一个类可以实现多个接口。

interface A
{
	public void show();
}

interface Z
{
	public int add(int a,int b);
}




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

 

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

 

 

class Q
{
	public void method()
	{}
}

abstract class Test2 extends Q implements A,Z
{


......
}

接口的出现避免了单继承的局限性扩展了子类的功能。

interface CC
{
	void show();
}
interface MM
{
	void method();
}

interface QQ extends  CC,MM//接口与接口之间是继承关系,而且接口可以多继承。 
{
	void function();
}

class WW implements QQ
{
//覆盖3个方法。
	public void show(){}
	public void method(){}
	public void function(){}
}

接口和抽象类的异同点

同:都是通过不断的向上抽取而来的。

异:

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

        接口需要被实现,Java可以通过多实现的方式来实现多继承。

   2、抽象类中可以定义抽象方法,也可以定义非抽象方法。子类继承父类以后,可以直接使用非抽象方法。

       接口中只能定义抽象方法,接口只能被实现。

   3、抽象类的继承是 is a 的关系。在定义该体系中的共性内容。

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

详情见知乎:

https://www.zhihu.com/search?type=content&q=%E6%8A%BD%E8%B1%A1%E7%B1%BB%E6%9C%89%E6%8E%A5%E5%8F%A3%E7%9A%84%E5%8C%BA%E5%88%AB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

真香号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值