1 package test_2_3; 2 3 public abstract class Rodent { 4 5 public abstract void eat(); 6 7 public abstract void run(); 8 9 public String what() { 10 11 return "Rodent"; 12 } 13 }
1 package test_2_3; 2 3 public class Gerbil extends Rodent{ 4 5 @Override 6 public void eat() { 7 8 System.out.println("Gerbil.eat()"); 9 } 10 11 @Override 12 public void run() { 13 14 System.out.println("Gerbil.run()"); 15 } 16 17 }
1 package test_2_3; 2 3 public class Hamster extends Rodent{ 4 5 @Override 6 public void eat() { 7 8 System.out.println("Hamster.eat()"); 9 } 10 11 @Override 12 public void run() { 13 14 System.out.println("Hamster.run()"); 15 } 16 17 @Override 18 public String what() { 19 20 return "Hamster"; 21 } 22 }
1 package test_2_3; 2 3 public class Mouse extends Rodent{ 4 5 @Override 6 public void eat() { 7 8 System.out.println("Mouse.eat()"); 9 } 10 11 @Override 12 public void run() { 13 14 System.out.println("Mouse.run()"); 15 } 16 17 @Override 18 public String what() { 19 20 return "Mouse"; 21 } 22 }
1 package test_2_3; 2 3 public class Test { 4 5 public static void main(String[] args) { 6 7 Rodent[] rodents = {new Gerbil(), new Hamster(), new Mouse()}; 8 9 for (Rodent rodent : rodents) { 10 rodent.eat(); 11 } 12 13 for (Rodent rodent : rodents) { 14 rodent.run(); 15 } 16 17 } 18 19 }
结果如下:
Gerbil.eat()
Hamster.eat()
Mouse.eat()
Gerbil.run()
Hamster.run()
Mouse.run()
[20-05-05][Thinking in Java 11]Java Interfaces 1 - Abstract
原文:https://www.cnblogs.com/mirai3usi9/p/12830598.html