Java寒假学习Day20:接口(1)

1.什么是接口?为什么需要接口?

1.1 接口是一种规范,一种标准,是“能不能做”,体现的近似于现实生活中的“你要xxx就必须要实现xxx(接口)”。

1.2Java是单继承的,一个子类只能有一个直接父类,但是我们在实际操作中,有时也会有需要一个类具有多个类的某些特征,因此设置了接口(interface)来实现类似这一操作。即一个子类只能继承一个直接父类,但是可以实现多个接口。

 

2.接口定义的注意事项?

①JDK1.7及以前,接口只能定义全局常量(public static final )和抽象方法(public abstract void xxx())

package InterfaceTest;
/*
 * JDK 1.7 前:
 * 		只能修饰全局常量和抽象办法
 */
public interface flyable {
	
	//全局常量
	public static final double MAX_VALUE = 1000.0;
	public static final double MIN_VALUE = 1000.0;
	
	//抽象办法
	public abstract void Flyup();
	public abstract void Flydown();
}

JDK1.8以后,接口还可以定义静态方法,默认方法

package InterfaceTest;
/*
 * JDK 1.8 后:
 * 		可以修饰全局常量和抽象办法,静态方法
 */
public interface flyable {
	
	//全局常量
	public static final double MAX_VALUE = 1000.0;
	public static final double MIN_VALUE = 1000.0;
    double MIN_VALUE2 = 1000.0;//省略了public static final,实际上仍然是全局常量
	
	//抽象方法
	public abstract void Flyup();
	public abstract void Flydown();
	
	//静态方法
	public static void hello() {
		System.out.println("hello");
	}
}

②接口中不能定义构造器,即接口天然不可以实例化

③接口需要由类来实现(implements),才能发挥其功能

④一个类想要实现某个接口,就要实现这个类的所有抽象办法

package InterfaceTest;

public class Bird implements flyable {

	@Override
	public void Flyup() {
		// TODO Auto-generated method stub

	}

	@Override
	public void Flydown() {
		// TODO Auto-generated method stub

	}

}

⑤一个类只有实现了需要实现的接口的所有抽象方法,才可以实例化;否则,这个类仍然为抽象类。

package InterfaceTest;

abstract public class Bird implements flyable {

	@Override
	public void Flyup() {
		// TODO Auto-generated method stub

	}
	
}

⑥一个类可以实现多个接口(弥补单继承的不足)

package InterfaceTest;

public class Bird implements flyable,attackable{

	@Override
	public void Flyup() {
		// TODO Auto-generated method stub

	}

	@Override
	public void attack() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void Flydown() {
		// TODO Auto-generated method stub
		
	}
	
}

⑦接口与类之间可以实现,类与类之间可以单继承,接口与接口之间可以多继承。

 ⑧借口是标准,后面为了代码够标准,会有面向接口编程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值