接口interface(多实现)

面向对象:
3种类型:类、接口、枚举
4个修饰符:private|protected|public、final、static、abstract
5个成员

一、概念

接口相当于 是一个彻底抽象的类,抽象类中的方法都是抽象的,此时可以通过接口的形式来表示。

接口体现的是一种规范——要暴露出来供大家遵守的,所以接口里的东西全用public修饰符(不写也默认有,通常都不写)

1.1 基本格式

  • [修饰符] interface 接口名 extends 父接口1,父接口2,…
    {

  • 成员变量:只能有常量(大写!),默认添加public static final修饰,通常不写

  • 抽象方法:类方法、方法体,默认添加public abstract修饰

  • 内部类
    }

  • (接口是多继承的)(不能有构造器、初始化块,因为初始化块最终用于构造器)

  • 修饰符:public、(final不能用,因为接口是彻底抽象了,是双重abstract)、(abstract不能有,因为interface已经很抽象了)

  • 接口名:命名规范等同于类名;推荐形容词(类名:名词、方法名:动词(行为)、成员变量名:名词(状态))。

二、定义与使用接口

  • Java不可以多继承,而接口可以实现多继承(多实现)的原因

——Java不支持多继承的原因是父类中的方法要写方法体,导致子类调用时,搞不清到底调用哪个父类的方法!而如果采用接口进行多实现,接口中的方法不需要方法体,方法体可以由子类任意定义,所以可以多实现。

/*类与类之间是继承关系(因为父类里有非抽象方法可以直接继承),
*接口是实现关系(因为接口里的方法全是抽象方法,如果继承的话就得全部复写方法,
*所以需要子类将接口方法全部实现后,再实例化,实现不需要复写)
*
*接口是不可以创建对象的,因为有抽象方法,需要被子类实现。
*子类对接口中的抽象方法全部覆盖后,子类才可以实例化,否则子类是一个抽象类
*/
interface  InterA  //接口1
{
	int NUM = 3;//默认有public static final修饰
	void show();//默认有public abstract修饰
}

interface InterB  //接口2
{
	void show();//验证多实现:假如两个接口中的方法一致
}

//接口的多实现
//接口的多实现,可以解决Java子类无法对父类进行多继承的问题,
//不支持多继承的原因是父类中的方法可能有重复,导致子类调用产生问题
//因为父类中需要写方法体,而多实现的几个接口中不需要写方法体
class Test implements InterA,InterB  
{
	public void show()//覆盖接口内的方法
	{
		
	}
}

public class  InterfaceDemo1
{
	public static void main(String[] args) 
	{
		Test t = new Test();
		System.out.println(t.NUM);//对象调用成员、类调用成员
		System.out.println(Test.NUM);//类调用成员
		System.out.println(Inter.NUM);//接口调用成员
		
		//t.NUM = 4;//错误,不可以对接口全局静态常量赋值
	}
}

interface A
{
   void methodA();
}
interface B
{
   void methodB();
}
interface C extends B,A
{
   void methodC();
}
class D implements C
{
    public void methodA(){}
    public void methodB(){}
    public void methodC(){}
}

接口的特点:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值