package com.JieKou;
public class jiekou {
public static void main(String[] args) {
//接口是特色的抽象类 接口中所有方法都是抽象方法
// Valuable gold = new Gold();
// //接口一样具有多态性
// //类只能单继承 熊猫是动物 熊猫还是值钱的东西
// gold.getMoney();
Panda panda = new Panda();
Animal panda1 = new Panda();//向上转型
Valuable panda2 = new Panda();//想上转型
Protect panda3 = new Panda();//同样是向上转型
//体现多态性
panda.cang();
panda.eat();
panda.getMoney();
panda1.eat();//站在动物的角度
panda2.getMoney();//站在换钱的角度上来看
panda3.cang();//站在藏起来的角度看 接口 只能实现藏起来的功能
//接口同样具有多态性
//接口可以吧不相关的内容进行整合 比喻 家里的插排
}
}
类:
package com.JieKou;
public class Gold implements Valuable{
//必须实现抽象方法 也是重写
@Override
public void getMoney() {
System.out.println("黄静可以换钱");
}
}
package com.JieKou;
public class Animal {
public void eat(){
System.out.println("动物会吃");
}
}
package com.JieKou;
public class Panda extends Animal implements Protect,Valuable{
//类可以继承一个类,但是可以实现多个接口
@Override
public void getMoney() {
System.out.println("老值钱了");
}
@Override
public void cang() {
System.out.println("藏山里");
}
@Override
public void eat() {
System.out.println("熊猫吃竹子");
}
}
package com.JieKou;
public interface Protect {
public void cang();
}
package com.JieKou;
/*
* 能继承借口的接口
* 接口和类只能是实现关系,implements
* */
public interface Valuable {//接口使用interface来声明,已经不是类了
//接口中所有方法都是抽象方法,可以省略掉abstract
//接口中所有的内容都是公开的 也可以胜率不写
public abstract void getMoney();
}