我的体会是,接口的出现是为了弥补Java继承而来的,终极目的是提高代码复用率和统一规范方法的命名,一个只能继承于一个父类,但可以有多个接口。接口只能有常量属性和抽象方法的声明一定不能实现。

1.接口的定义:

[public] interface 接口名[extends 父接口列表]{
 //常量的声明
 [public] [static][ final]数据类型 常量名 = 常量值;
 //抽象方法的声明
 [public] [abstract] 返回类型 方法名(参数列表);
 }


a.这里的方括号是可选项,常量缺省为public static final ,抽象方法缺省为 public abstract,它只能被一个包中的其它类和接口使用.
b.在类中实现接口时,该接口的所有方法必须被实现,如果该方法没有被实现(也要全部重写一遍),说明该类是个抽象类,继承该类的子类也得实现那个接口所有的抽象方法,逃不掉的。
c,接口不能有构造方法。
2.接口的实现

[修饰符] class <类名> [extends 父类名] [implements 接口列表]{
 }

实例:
Person.java

package shunli.li.jiekou;

public class Person {			//定义了一个人类
	private String name;		//姓名
	private int age;				//年龄
	public void speak(Person person) {}		//讲语言
}

Show.java

package shunli.li.jiekou;

public interface Show {		//这是一个接口,抽象方法是show(),省略了public abstract 关键字,但具有一样效果
	void show();						//展示方法
}

Studentl.java

package shunli.li.jiekou;

public class Student extends Person implements Show{	//定义了一个学生类,继承人类,接口是展示
	 static final String ID = "Student";	//身份是学生
	 public  void show() {		//展示方法
		 System.out.println("我 正在回到老师问题");
	 }
	 public  void speak(Student student) {	 //从”父类“人类那里继承的讲语言
		 System.out.println("我会讲中文");
	 }
	 public Student() {		//构造方法
		 super();		//调用父类构造方法完成构造
	 }
}

Teacher.java

package shunli.li.jiekou;

public class Teacher extends Person implements Show{			//老师类,其于同上
	private static final String ID = "teacher";
	public Teacher() {
		super();
	}
	public void show() {
		System.out.println("我正在给学生上课");
	}
	public void speak(Teacher teacher) {
		System.out.println("我不仅可以讲中文还能讲英文");
	}
}

Test.java

package shunli.li.jiekou;

import java.lang.reflect.Array; 			

public class Test {		//测试类
	public static void main(String[] args) {	
		// TODO Auto-generated method stub
		Student stu1 = new Student();	//构造学生1
		Teacher tea1 = new Teacher();	//构造教师1
		stu1.speak(stu1);		//调用学生speak()方法
		stu1.show();		    //调用Student类show()方法
		tea1.speak(tea1);		//调用spenak()方法
		tea1.show();		    //调用Teacher类show()方法
		
	}

}

java中,什么是接口 java中什么是接口名_java中


由此可见,统一规范了同类方法的命名,列如展示都叫show,因为不止人可以show,所以show不是人类所特有的,不便放在人类这个类中,当然这里更好的是再举个宠物类之类的,然后它们也可以用接口Show就更直观了。换句话说,接口只是统一命名规范,并不讲谁实现,怎么实现。