- 接口实际上也是抽象类,是一种引用数据类型
- 书写规则:
public interface 接口名{}
- 类实现接口:
public class 类名 implements 接口名{}
- 接口不能实例化,但可以参照多态的方式,实现接口多态来实例化
- 接口可以实现多继承,而类和类之间只能实现单继承,接口弥补了这个缺陷
- 接口包含两部分
- 常量
- 抽象方法
- 接口中的常量都默认加上public static final,记住是常量,不能在实现类中赋值
- 接口类中的方法都是抽象方法,所以方法中不能有方法体
方法可以直接写 void 方法名(){},因为前面默认加上了public abstract
- 类与类之间叫继承(extends),类与接口之间叫实现(implements)
- 一个非抽象类实现接口的话,必须将其抽象方法全部重写覆写
package Experience;
public interface Number {
int age=4;
void jump();
}
package Experience;
public abstract class Animal {
private String name;
private int age;
Animal(){
}
Animal(String name,int age){
this.name=name;
this.age=age;
}
public abstract void act();
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
}
package Experience;
public class Cat extends Animal implements Number{
Cat(){
}
Cat(String name,int age){
super(name, age);
}
@Override
public void jump(){
System.out.println("猫跳高");
}
@Override
public void act(){
System.out.println("猫抓老鼠");
}
}
package Experience;
public class Test {
public static void main(String[] args){
Number a=new Cat();
a.jump();
Animal b=new Cat();
b.act();
b.setAge(10);
b.setName("大橘");
System.out.println(b.getName()+"今年"+b.getAge()+"岁了");
b=new Cat("狸花猫",3);
System.out.println(b.getName()+"今年"+b.getAge()+"岁了");
}
}