Java学习

Java 接口

接口提供了一种方法声明与方法实现相分离的机制,使得接口的多个类具有共同的行为能力,能够实现运行时多态。

接口(interface)是一组抽象方法、常量和内嵌类型的集合。接口时一种数据类型,采用抽象形式来描述约定,因此接口只有被对应的类实现之后才有意义。

声明接口

// 使用关键字 interface 声明接口,语法格式如下,其中 [] 表示可选项
// [public] interface 接口<泛型> [extends 父接口列表]
// {
//  	[public] [static] [final] 数据类型 成员变量 = 常量值;
//		[public] [abstract] 返回值类型 成员方法[(参数列表)];
// }

例如

public interface Area{ // 可计算面积的接口
    public abstract double area(); // 抽象方法声明,计算面积
}

public interface Perimeter{ // 可计算周长接口
    public abstract double perimeter();  // 抽象方法声明,计算周长
}

接口与抽象类

  • 在Java8出现之前,抽象类和接口内的方法必须都是抽象方法,加abstract,不包含方法体;但在Java8之后,接口不仅可以包含抽象方法,还可以包括默认方法、静态方法
  • 一个类、接口可以继承多个接口,但一个类只能继承一个父类(不管是不是抽象类)
  • 抽象类的方法不需要在派生类中全部实现;但继承了某个接口的类必须要将接口的全部方法实现
package sduwh;

interface A{
	public abstract void show();
}

interface B{
	public abstract void print();
}

interface C extends A,B{ // 接口可以继承接口;接口可以多继承,这弥补了Java中类只能单继承的缺点;
	
}

class Test implements C{
	Test(){};
	@Override
	public void show() {
		System.out.println("Class Test implements C,Override option void show()");
	}
	@Override
	public void print() {
		System.out.println("Class Test implements C,Override option void print()");
	}
	
}
public class It {
	public static void main(String args[]) {
		Test a = new Test();
		a.show();
		a.print();
	}
}

接口定义规范

interface Collection{
    void add(Object obj);
    void delete(Object obj);
    Object find(Object obj);
    int size();
}
---- suffer now and live the rest of your life as a champion ----
原文地址:https://www.cnblogs.com/popodynasty/p/13838941.html