接口的概念以及在JDK7、8和9之间的区别

目录

一、接口的概念

二、接口和类之间的关系

三、接口的定义格式

 四、在JDK7中的接口

五、在JDK8中的接口

六、在JDK9中的接口 


一、接口的概念

接口 : Java 引用数据类中的一大种类 -> interface

        [类(class),接口(interface),数组(Array),枚举(enum),注解(@interface)]

类 是一类事物的抽象; //封装了一类数的属性和行为

抽象类 是比类更抽象的类; //抽象类中有抽象方法且不能创建的对象

接口 是比抽象类还抽象的"类"; // 当一个类中只有抽象方法的时候,就可以把这个类定义成 接口  [接口也是一种类型]

二、接口和类之间的关系

类和类之间的关系 : 继承 [extends] -> 单一继承多层继承
类和抽象类之间的关系 : 继承 [extends] ->  单一继承多层继承
    
接口和类之间的关系 : 实现 [implements] -> 多实现(一个子类可以实现多个父接口) 
接口和接口之间的关系 : 继承 [extends] -> 多继承(一个子接口可以继承多个父接口)    
    
结论 : 接口的出现打破了Java中继承的单一性 (实现也是一种特殊的继承)  

三、接口的定义格式

格式 : 
	
//接口名和类名的命名规则是一样的 : 大驼峰
public interface 接口名{ 
        
}


public interface UncleOne{}
public interface UncleTwo{}
public class Fu{}

//一个子类继承一个父类实现多个父接口的格式 :
public class Zi extends Fu implements Uncle1,Uncle2{
    
}

//一个子接口继承多个父接口
public interface InterZi extends UncleOne,UncleTwo{
    
}

 四、在JDK7中的接口

public interface InterJDK7{
    自定义常量 默认被public static final 修饰
    接口中不允许有成员变量
    public static final int NUM = 100;

    抽象方法   默认被 public abstract 修饰
    public abstract void method();

    接口中不允许有构造方法,肯定创建不了接口对象!
    接口如何使用 :  //接口的子类也叫实现类
	1. 拿类实现接口,重写父接口中所有的抽象方法 --> 在使用接口的地方创建实现类对象,使用实现类对象调用重写后的方法
    2. 拿类实现接口,把实现类变成抽象类 --> 把父接口中的抽象方法交付给实现类的子类们去实现  
}

五、在JDK8中的接口

JDK8版本的成员 : 
	1. 自定义常量 : 默认被 public static final 修饰
        	//接口中没有成员变量,在成员位置上的变量全是 自定义常量
    2. 抽象方法 : 默认被 public abstract 修饰
        
        
    //默认方法和静态方法是允许有方法体的    
    3. 默认方法 : 
		格式 :
			public default 返回值类型 方法名(形式从参数列表){
                //方法体
            }
		默认方法 : 默认被 public 修饰 //default 必须自己加
            
	4. 静态方法 : 
		格式 :
			public static 返回值类型 方法名(形式从参数列表){
                //方法体
            }
		静态方法 : 默认被 public 修饰 //static 必须自己加
            
接口如何使用 :  //接口的子类也叫实现类
	1. 拿类实现接口,重写父接口中所有的抽象方法 --> 在使用接口的地方创建实现类对象,使用实现类对象调用重写后的方法
    /*
    	接口中的抽象方法必须 全部重写 !
    	
    	接口中的默认方法可以选择性重写 [想重写重写,不想重写可以不重写] -> 使用实现类对象调用
    		//当多个父接口中的有相同声明的默认方法,实现类必须重写父接口中的默认方法 !!
    		
    	接口中的静态方法不能重写 -> 只能使用接口名调用静态方法 []
    */    
    2. 拿类实现接口,把实现类变成抽象类 --> 把父接口中的抽象方法交付给实现类的子类们去实现               

六、在JDK9中的接口 

JDK9版本的成员 : 
	1. 自定义常量 : 默认被 public static final 修饰
        	//接口中没有成员变量,在成员位置上的变量全是 自定义常量
    2. 抽象方法 : 默认被 public abstract 修饰  
        
    //默认方法和静态方法是允许有方法体的    
    3. 默认方法 : 

	4. 静态方法 : 
		
	//新增的私有方法 是为接口中的默认方法和静态方法服务的
	5. 私有方法 : [静态私有,非静态私有]
		非静态私有的格式 : //为默认方法服务
			private 返回值类型 方法名(形参列表){
                //方法体
            }
		静态私有的格式 : //为静态方法
			private static 返回值类型 方法名(形参列表){
                //方法体
            }

	关于私有方法的使用 只能在接口内使用 !

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值