二.Java 中的接口
1.接口的规则如下:
- 1)接口是特殊的抽象类。在一个接口中,其中的所有方法都是抽象的。
- 2)接口中的方法默认用
public abstract修饰;接口中的变量默认都是public abstract final修饰 - 3)接口中不可以有普通的方法
- 4)Java不支持多继承,但支持多实现。即一个类只能有一个父类,但是可以有很多不同的接口
- 5)接口可以继承接口,使用extends,注意啊,这里不是使用implements!!!!
- 6)抽象类可以实现接口,使用implements
2.代码如下:
- 示例1
package grammer.Implements;
public interface Eat {
public abstract void eat();
}
package grammer.Implements;
public interface Run {
public abstract void run();
}
Modifier 'public' and 'abstract' are redundant for interface methods所以最好的代码应该是下面这个样子:
package grammer.Implements;
public interface Eat {
void eat();
}
package grammer.Implements;
public interface Run {
void run();
}
Java虽然不支持多继承【一个类只能继承一个类,但是可以多层继承】,但是支持多实现。【一个类可以实现多个接口】
package grammer.Implements;
public class Cat implements Eat,Run {
public void eat() {
System.out.println("I like eating fishes!");
}
public void run() {
System.out.println("I run fast!");
}
public static void main(String[] args) {
Cat cat = new Cat();
cat.eat();
cat.run();
}
}
- 示例2
package liu.shen.test;
interface People{
//int age;
//Error --> The blank final field name may not have been initialized
//因为接口中的成员变量都是默认public static final修饰,所以必须初始化。
void sleep();//休息
void eat();//吃
void struggle();//奋斗
}
abstract class Student implements People{//定义个抽象类Student实现接口People
}
public class Senior extends Student
{
public static void main(String[] args){
Senior se = new Senior();
se.sleep();
}
@Override
public void sleep() {
// TODO Auto-generated method stub
}
@Override
public void eat() {
// TODO Auto-generated method stub
}
@Override
public void struggle() {
// TODO Auto-generated method stub
}
}
















