标签:java pet dog 多态 Pet Dog Cat public
1 package pet_2; 2 3 public 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 } 14 15 16 package pet_2; 17 18 public class Dog extends Pet { 19 20 public void play() { 21 System.out.println("狗玩盘子"); 22 } 23 } 24 25 26 package pet_2; 27 28 public class Cat extends Pet { 29 30 public void play() { 31 System.out.println("猫抓老鼠"); 32 } 33 } 34 35 36 package pet_2; 37 38 public class Master { 39 public static Pet getPet(int typeid) {//静态方法可以直接类名调用,无需实例化一个对象 40 Pet pet=null; 41 if(typeid==1) { 42 pet=new Cat();//or Cat cat=new Cat(); 43 }else if(typeid==2) { 44 Dog dog=new Dog(); 45 pet=dog; 46 } 47 48 return pet; 49 } 50 51 public void play(Pet pet) { 52 //if(如果pet是dog) instanceof 53 if(pet instanceof Dog) { 54 Dog dog=(Dog)pet; 55 dog.play(); 56 } 57 if(pet instanceof Cat) { 58 Cat cat=(Cat)pet; 59 cat.play(); 60 } 61 } 62 } 63 64 65 package pet_2; 66 67 public class Mastertest { 68 69 public static void main(String[] args) { 70 Master master=new Master(); 71 //Pet dog =new Dog(); 72 Pet dog=Master.getPet(2); 73 master.play(dog); 74 } 75 76 }
标签:java,pet,dog,多态,Pet,Dog,Cat,public 来源: https://www.cnblogs.com/dss-99/p/14016872.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。