java 接口

package object;
/*特殊类(标准、没实现)、多继承、抽象类、工具类
 *								接口(与类并列)
 *1、定义:可以理解为一种特殊类,在这个类里面制定了一系列标准(没实现只声明)
 *		  同时接口是解决了JAVA无法多继承的一种手段
 *		  在java8之前可以理解:为抽象类的特殊形式,接口里面只有抽象方法与常量声明
 *		  在java8之后可以理解:为工具类,增设了静态与默认方法的功能	(具有实现功能有方法体)
 *
 *2、为什么要用接口
	 *2.1实现多继承
	 *2.2解耦
	 *2.3原因是抽象类内部可能包含非final的变量,但是在接口中存在的变量一定是final,public,static的。
 *
 *3、接口的实现
 *
	 *前言:接口类似与一个USB口,我在里面制定了一系列标准,只要你能实现所有标准
	 *那么你就具有使用USB的功能
	 *像类一样接口也有方法与属性,但在接口中方法默认是抽象的。属性是全局常量
	 *
	 *
	 *使用:	方法:默认为public abstact
	 *		属性:默认为public static final
	 *
	 *实现:关键字:implements(实现)
	 *		使用类实现(重写)类似继承
  *4、接口的注意点
  *
  *4.1:对象实例化问题,接口的方法一般是抽象的,代表接口也是抽象的
  *所以我们无法直接实例化对象,这时就需要java中的多态:向上转型
  *
  *4.2一个类可以继承多个接口(弥补类无法实现多继承的局限。)
  *  一个接口可以继承另一个接口,重写也要包含那个接口的方法
  *  
  *  
  *4.3,Java 8允许在接口中定义两类新方法:静态方法和默认方法,它们有实现体
  *静态方法:public static void xxx{方法体};
  *默认方法:default void xxx{方法体};  
  *
  *
  *4.4接口中不能定义构造器,意味着不能实例化
  *
  *
  *4.5java8、9新增静态方法static、默认方法default
  *静态方法通过接口调
  *默认方法创建对象调
  *
  *
  *
  *4.6
  *接口中不能含有代码块
 */





	//3、接口的实现
interface Interface01{
//			方法默认修饰符(抽象方法)	
		public abstract void TestInterface();
		int TestInterface02();
//			变量默认修饰符(全局常量)
		public static final int TestInterface03=666;
		int TestInterface=999;
		
}
class ClassA implements Interface01
{
//	需要重写接口所有方法(实现标准)才承认你有接口的功能
	
	
	@Override
	public void TestInterface() {
		System.out.println("我是接口重写方法01");
		
	}

	@Override
	public int TestInterface02() {
		System.out.println("我是接口重写方法02");
		return 0;
	}
	
}
//	4、接口的注意点	
public class Interface {
	
	public static void main(String args[])
	{//向上转型,并且调用的是重写的方法
		Interface01 P=new ClassA ();
	 //常量不能修改	
	//	P.TestInterface03=8;
		System.out.println(P.TestInterface);
	//变量默认是静态的可以直接调用	
		System.out.println(Interface01.TestInterface);
		P.TestInterface();
		P.TestInterface02();
		
		
		
		
//		4.2一个类可以继承多个接口
//		  *  一个接口可以继承另一个接口,重写也要包含那个接口的方法
		Interface02 S=new B ();
			S.TestInterface();
			S.TestInterface02();
			S.TestInterface04();
			
			
			
			
			
			
			//4.5
			
			 Interface08 G=new D();
			 G.TestAbstact();
			 G.TestDefault();
			 Interface08.TestStatic();
			
		
	}
	
}
interface Interface02 extends Interface01
{
	void TestInterface04();
}
class B implements Interface02
{

	@Override
	public void TestInterface() {
	
		System.out.println("我是接口重写方法011");
	}

	@Override
	public int TestInterface02() {
		System.out.println("我是接口重写方法022");
		return 0;
	}

	@Override
	public void TestInterface04() {
		System.out.println("我是接口重写方法033");
		
	}
	
}
class C implements Interface01,Interface02
{

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

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

	@Override
	public int TestInterface02() {
		// TODO Auto-generated method stub
		return 0;
	}
	
}




//				4.5java8、9新增静态方法static、默认方法default



interface Interface08
{
	public abstract void TestAbstact();
	public static void TestStatic()
	{
		System.out.println("静态");
		
	}
	default void TestDefault()
	{
		System.out.println("默认");
	}
}
class D implements Interface08
{
	
	@Override
	public void TestAbstact() {
		
		System.out.println("抽象");
	}
	
}



interface Interface09
{//4.6接口中不能含有静态代码块以及静态方法
//	{
//		
//	}
}
		
	

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值