package com.jasonote.interfaceStudy;
/**
* Created by Jasonote on 2017/11/26.
* 接口
* |-只有抽象方法和全局常量组成,接口A与接口AA是等价的
* |-接口必须有子类,一个子类可以使用 implements 关键字实现多个接口
* |-接口的子类(如果不是抽象类),必须要覆写接口中的全部抽象方法
* |-接口的对象可以利用子类对象的向上转型进行实例化操作
* <p>
* 总结
* |- 一个抽象类只能够继承一个抽象的父类,而接口没有这个限制
* |- 一个子类只能够继承一个抽象类,而却可以实现多个接口
* |- 接口主要解决单继承局限问题
*/
public class InterfaceDemo {
public static void main(String[] args) {
X x = new X();
x.print();
x.get();
x.change();
System.out.println("------------------");
A a = x;
B b = x;
C c = x;
a.print();
b.get();
c.change();
}
}
interface A {
public static final String MSG = "msg";
public abstract void print();
}
interface AA {
String MSG = "msg";
void print();
}
interface B {
public abstract void get();
}
abstract class C {
public abstract void change();
}
interface D extends A, B {
}
interface E {
public void funA();
abstract class e {
public abstract void fune();
}
}
class X extends C implements A, B {
@Override
public void print() {
System.out.println("print");
}
@Override
public void get() {
System.out.println("get");
}
@Override
public void change() {
System.out.println("change");
}
}