5.2接口的特点
1.接口不可以被实例化
2.接口类必须实现接口的所有方法
//定义宠物接口吃
public interface Pet {
public abstract void eat();
}
//狗类
public class Dog implements Pet{
@Override
public void eat() {
System.out.println("狗吃狗粮");
}
}
//猫类
public class Cat implements Pet{
@Override
public void eat() {
System.out.println("猫吃猫粮");
}
}
//测试类
public class Test {
public static void main(String[] args) {
Dog d = new Dog();
d.eat();
Cat c = new Cat();
c.eat();
// Pet p = new Pet();不可以被实例化
Pet p = new Dog(); // 多态
p.eat();
}
}
3.实现类可以实现多个接口implements,多个接口使用逗号隔开
public interface A{}
public interface B{}
public class C implements A, B{}
4.接口中变量都是静态常量:默认public static final 修饰
static:静态的,修饰类属性,类方法
static int age;
String name;
final:final修饰的类不可以被继承
public final class SystemS {
public void setS() {
System.out.println("核心系统,不要动。。。");
}
}
public class Mydemo extends SystemS{ //final修饰的类无法被继承,会报错
public void setS() {
System.out.println("清空代码,明天跑路。。。");
}
}
final修饰的方法不可以被重写
public class SystemS {
public final void setS() {
System.out.println("核心系统,不要动。。。");
}
}
public class Mydemo extends SystemS{
public void setS() { //不可重写
System.out.println("清空代码,明天跑路。。。");
}
}
final修饰的属性不可以被修改,属性名字全大写
final String SEX = "女";
5.接口中的方法都是抽象方法: 默认public abstract修饰
public abstract void method();