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 }

 

posted @ 2020-11-21 19:28  丁帅帅dss  阅读(75)  评论(0)    收藏  举报