java抽象类,多态1
1 package pet_2; 2 3 public abstract class Pet { 4 private String name; 5 6 public String getName() { 7 return name; 8 } 9 10 public void setName(String name) { 11 this.name = name; 12 } 13 public abstract void eat(); 14 } 15 16 package pet_2; 17 18 public class Cat extends Pet { 19 public void eat() { 20 System.out.println("吃鱼"); 21 } 22 } 23 24 package pet_2; 25 26 public class Dog extends Pet { 27 public void eat() { 28 System.out.println("吃狗粮"); 29 } 30 31 } 32 33 package pet_2; 34 35 public class Master { 36 //Pet pet=外界传入的实参 37 public void feed(Pet pet) { 38 System.out.println("喂"+pet.getName()); 39 pet.eat(); 40 } 41 } 42 43 package pet_2; 44 45 public class Mastertest { 46 47 public static void main(String[] args) { 48 Master master=new Master(); 49 Pet dog =new Dog(); 50 dog.setName("旺财"); 51 master.feed(dog); 52 Pet cat=new Cat(); 53 cat.setName("小花"); 54 master.feed(cat); 55 } 56 57 } 58 59 package pet_2; 60 61 public class Master { 62 //Pet pet=外界传入的实参 63 public void feed(Pet pet) { 64 System.out.println("喂"+pet.getName()); 65 pet.eat(); 66 } 67 public static Pet getPet(int typeid) {//静态方法可以直接类名调用,无需实例化一个对象 68 Pet pet=null; 69 if(typeid==1) { 70 pet=new Cat();//or Cat cat=new Cat(); 71 }else if(typeid==2) { 72 Dog dog=new Dog(); 73 pet=dog; 74 } 75 76 return pet; 77 } 78 } 79 80 81 82 package pet_2; 83 84 public class Mastertest { 85 86 public static void main(String[] args) { 87 Master master=new Master(); 88 //Pet dog =new Dog(); 89 Pet dog=Master.getPet(2); 90 dog.setName("旺财"); 91 master.feed(dog); 92 //Pet cat=new Cat(); 93 Pet cat=Master.getPet(1); 94 cat.setName("小花"); 95 master.feed(cat); 96 } 97 98 }
道阻且长,行则将至

浙公网安备 33010602011771号