1.
public interface TestIn { //接口
int ID=1;//public static final int ID=1;
void test();//public abstract void test();
}
2.
public interface TestIn1 {
void test1();
}
3.
public interface TestIn2 extends TestIn1 {//接口可以继承接口
}
4.
//子类继承父类只能继承一个
// 但是子类可以实现多个接口,多个接口用“逗号”分隔
public class TestInImpl implements TestIn,TestIn1 {
@Override
public void test(){
}
@Override
public void test1() {
}
}
5.
public abstract class TestInImpl1 implements TestIn {//如果类没有实现接口的所有方法,那么这个类就要定义为抽象类
}
6.
//若一个类既继承父类又实现接口那么先继承再实现
public class TestInImpl2 extends TestInImpl implements TestIn,TestIn1,TestIn2 {
}
例子
public abstract class Person {
int age;
String name;
int sex;
public abstract void showInfo();
}
public interface Cooking {
void fry();
}
public interface Sing {
void singing();
}
public class SCTeacher extends Person implements Cooking,Sing {
String course;
public void setInfo(){
super.age=14;
super.name="布洛尼亚";
super.sex=0;
this.course="如何黑掉系统";
}
public void showInfo() {
System.out.println("会唱歌的厨子老师信息是");
System.out.println(super.sex);
System.out.println(super.age);
System.out.println(super.name);
System.out.println(this.course);
}
public void fry() {
System.out.println(super.name+"想喝希尔的甜菜汤");
}
public void singing() {
System.out.println(super.name+"你也想听布洛尼亚唱的爱河吗");
}
public static void main(String[] args) {
SCTeacher sct=new SCTeacher();
sct.setInfo();
sct.showInfo();
sct.fry();
sct.singing();
}
}
运行结果:
会唱歌的厨子老师信息是
0
14
布洛尼亚
如何黑掉系统
布洛尼亚想喝希尔的甜菜汤
布洛尼亚你也想听布洛尼亚唱的爱河吗
Process finished with exit code 0
接口的其他问题
public static void main(String[] args) {
Cooking c=new SCTeacher();//可以用接口来接收
c.fry();//但是只能访问当前接口自己的方法
}
总结:抽象类是对一类具体事务的高度抽象其中既有属性又有方法;
接口是对方法的抽象,也就是对于一系列动作的抽象。
当需要对一类事物抽象的时候应该使用抽象类,好形成一个父类;
当需要对一系列动作抽象,就使用接口,需要使用这些动作的类去实现相应的接口即可。