Java-接口interface(另类抽象)给你方法,要用才设置

1.1 特点

  • 用interface定义
  • 接口中所有成员变量都默认是由public static final修饰的
  • 接口中所有方法都默认是由public abstract修饰的
  • 接口没有构造器
  • 接口采用多层继承机制
  • java本身不支持多重继承,我们一般使用接口来做到多重继承的效果

1.2 定义举例

public interface Runner{
    (public static final) int ID=1;
    (public abstract) void start();
    (public abstract) void run();
    (public abstract) void stop();
}
public interface Player{
    (public static final) int AD=1;
    (public abstract) void begin();
    (public abstract) void play();
    (public abstract) void end();
}

1.3 接口实现举例

子类可以实现多个接口,多个接口用逗号隔开
public class Test implements Player,Runner{
    public void start(){

    }   
    public void begin(){

    }
}

1.4 接口可以继承接口

public interface StudentPlayer extends Player{

}

1.5 继承+实现

  • 如果一个类既继承父类,又实现接口,那么先继承,再实现

1.6 接口与抽象类

  • 接口能做的事用抽象类也能做,为什么用接口?
    • 新增方法上
      • 抽象类新增抽象方法存在的问题
        • 子类继承父类 父类新增抽象方法 则子类必须实现父类新增的抽象方法或者子类改为抽象类
      • 接口新增抽象方法
        • 子类继承父类 父类新增接口 而子类只需按需要新增抽象方法
    • 用java描述会唱歌的厨子是个老师
      • 分析:不用接口就是使用继承传递
        • 从Person类—Singer类—Cook类-Teacher类
    • 使用接口描述 Teacher类-Person类 然后Cooking接口,Sing接口实现接口方法

1.7 举例如下

abstract class Person
    int age
    String name
    int sex
    abstract void showinfo()
----------------------------
interface Cooking
    void fry()
----------------------------
interface Sing
    void singing()
----------------------------
class SCTeacher
    String course
    void showinfo()
    void fry()
    void singing()

1.8 对象的多态

一个类可以实现多个无关接口
Cooking c=new SCTeacher()
c.fry()
Sing s=new SCTeacher()
s.singing()

1.9 接口与抽象类何时用

  • 如果实现接口的类中没有实现接口中的全部方法,必须将此类定义为抽象类
  • 抽象类是对于一类事物的高度抽象,其中既有属性也有方法
  • 接口是对方法的抽象,也就是对一系列动作的抽象
  • 当需要对一类事物抽象的时候,应该是使用抽象类,好形成一个父类
  • 当需要对一系列的动作抽象,就使用接口,需要使用这些动作的类去实现相应的接口
posted @ 2020-06-02 09:35  东血  阅读(391)  评论(0编辑  收藏  举报

载入天数...载入时分秒...