接口是一种行为的规范和标准。
package demo3;
/**
* 接口使用关键字interface来修饰
* 接口当中的成员方法 只能是抽象方法 所有的方法都默认是public abstract
* 接口当中的的成员变量 默认是public static final
* 接口当中的方法 如果要实现需要用default来修饰
* 接口当中的静态方法 可以有具体的实现
* 接口不能进行实例化 new接口
* 一个普通的类 可以通过implements来实现这个接口
* 但要重写接口里面未实现的抽象方法
*/
interface IShape{
//成员变量
int a = 10;//public static final
//成员方法 实现
default void func(){
System.out.println("默认的方法");
}
public static void staticFunc(){
System.out.println("静态方法");
}
void draw();//public abstract修饰的方法 未实现
}
class Cycle implements IShape{
@Override
public void draw() {
System.out.println("○");
}
}
class Rect implements IShape{
@Override
public void draw() {
System.out.println("◇");
}
}
class Triangle implements IShape{
@Override
public void draw() {
System.out.println("△");
}
}
public class Test{
//向上转型
public static void drawMap(IShape shape){
shape.draw();
}
public static void main(String[] args) {
Cycle cycle = new Cycle();
Rect rect = new Rect();
Triangle triangle = new Triangle();
drawMap(cycle);
drawMap(rect);
drawMap(triangle);
}
public static void main1(String[] args) {
//IShape iShape = new IShape();//不能实例化接口
//IShape iShape = new A();
//iShape.draw();
//iShape.func();
IShape.staticFunc();
}
}