Java基础课——interface的理解
复习了一下Java里interface的用法,又看了一遍马士兵老师的讲interface的视频,加深了一下理解。关键的几个知识点是这几个
-本质上就是特殊的抽象类,只包含常量和方法的定义,不包含变量和方法的实现
-常量只能是static final (为了避免C++中多继承带来的问题,定义成static final后这个常量就脱离于接口而存在),方法只能是public的,且一定是抽象方法
-与继承一样会有多台的存在
-可以继承其他的接口,添加新属性和新的抽象方法
最简单的接口:
public interface Singer{
public static final int count = 1;
public void sing();
public void sleep();
}
接口的多态:
public class Test{
public static void main(String args[]){
//Student实现了singer接口,重写了其中的方法
//singer只能看到Student里sing和sleep方法
Singer singer = new Student("小明");
//这里形成了多态,输出的是Student里重写的方法
singer.sing(); //输出的是"小明"
//Teacher实现了Singer和Painter两个接口
singer singer2 = new Teacher("都都");
//同上,这里输出了Teacher里重写的方法
singer2.sing();
singer2.sleep();
//将singer2看做Painter来用
Painter p1 = (Painter)singer2;
singer2.draw();
//依然可以形成多态
method(Singer singer){
singer.sing();
}
}
}