javaSE-chapter14接口

1. 接口概念

  java接口表示一种规范/约束,要求实现者必须遵守该规范


2. 定义接口

  语法:

    [public] interface 接口名{

        方法定义;

    }

  注: 不使用public修饰符,表示仅仅可以被该接口所在的包内的其他类实现,对非该包内的类不可见


3. 接口内的成员

  3.1 接口中没有构造器,不可以new

  3.2 接口中定义的成员变量,实质是全局静态常量,即默认使用public static final修饰,所以一般使用全大写字母,用下划线连接

  3.3 接口中定义的方法都是公共的抽象的方法,即默认使用public abstract修饰符,不能使用private, protected,static等修饰符

  3.4 接口中定义的内部类都是公共的静态的内部类,即默认使用publics static修饰符

public interface InterfaceDemo{
	
	//成员变量
	int NUM = 10;
	
	void test();
	
	//private void sayHello1();  --编译报错
	//protected void sayHello2();  --编译报错
	//static void sayHello3();  --编译报错
	
}
public class Hello implements InterfaceDemo{

	@Override
	public void test() {
		// TODO Auto-generated method stub
		System.out.println(InterfaceDemo.NUM);
		// NUM = 20;  --编译报错, 因为NUM默认是final修饰的
	}
	
}


4. 接口的特点

  4.1 没有构造方法,也不能显示定义构造器,不能实例化

  4.2 接口只能继承接口,不能继承类(Object类不是接口的父类),且接口支持多继承

  4.3 接口的方法全是公共抽象非静态的,所以实现类复写的方法也必须是public修饰

  4.4 接口的成员变量全是全局静态常量

  4.5 接口的内部类全是公共静态的

  4.6 接口和接口之间可以是继承关系,接口与实现类只能是实现关系


5. 面向接口编程

  接口类型 变量名 = 实现类  (即用接口类型变量接收实现类的实例对象)


6. 比较抽象类与接口

  6.1 相同点:

    6.1.1 都位于继承的顶端(抽象类是Object类的子类),用于被其他类继承或实现

    6.1.2 都不能使用new 来实例化

    6.1.3 都可以定义抽象方法,其子类或实现类必须实现复写这些抽象方法

  6.2 不同点:

    6.2.1 接口中没有构造器,抽象类有构造器,因为抽象类必须有子类,创建子类必须调用父类构造器

    6.2.2 抽象类中可以有非抽象方法,接口中的方法全部是抽象方法

    6.2.3 类中鞥单继承,接口可以多继承多实现

    6.2.4 接口中成员变量都是public static final修饰的

    6.2.5 接口中的方法全是public abstract修饰的

    6.2.6 接口中的内部类都是public static修饰的

  



猜你喜欢

转载自blog.csdn.net/tca0819/article/details/80428362