diff --git a/src/class22/Animal.java b/src/class22/Animal.java new file mode 100644 index 0000000..2fb675c --- /dev/null +++ b/src/class22/Animal.java @@ -0,0 +1,8 @@ +package class22; + +public class Animal { + + public void run(){ + System.out.println("动物会跑~~~"); + } +} diff --git a/src/class22/Test.java b/src/class22/Test.java new file mode 100644 index 0000000..e440f7a --- /dev/null +++ b/src/class22/Test.java @@ -0,0 +1,36 @@ +package class22; + +public class Test { + public static void main(String[] args) { + Animal a1 = new Tortoise(); + a1.run(); +// 多态无法调用子类独有的方法 +// a1.shrinkHead(); + Tortoise t1 = (Tortoise)a1; + t1.shrinkHead(); +// 强制转换 +// Wolf test1= (Wolf)a1;//运行时异常 + + + + + System.out.println("========================="); + + Wolf w = new Wolf(); + go(w); + Tortoise t = new Tortoise(); + go(t); + } + + public static void go(Animal w){ + System.out.println("开始......"); + w.run(); + if (w instanceof Tortoise) { + Tortoise t=(Tortoise)w; + t.shrinkHead(); + } else if (w instanceof Wolf) { + Wolf w1=(Wolf)w; + w1.run(); + } + } +} diff --git a/src/class22/Tortoise.java b/src/class22/Tortoise.java new file mode 100644 index 0000000..2e062bc --- /dev/null +++ b/src/class22/Tortoise.java @@ -0,0 +1,12 @@ +package class22; + +public class Tortoise extends Animal { + @Override + public void run() { + + System.out.println("🐢跑的贼慢~~"); + } + public void shrinkHead(){ + System.out.println("🐢缩头了~~"); + } +} diff --git a/src/class22/Wolf.java b/src/class22/Wolf.java new file mode 100644 index 0000000..950022f --- /dev/null +++ b/src/class22/Wolf.java @@ -0,0 +1,8 @@ +package class22; + +public class Wolf extends Animal { + @Override + public void run() { + System.out.println("狼跑的贼溜~"); + } +}