java多态2
2024-09-07 14:23:49
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 }
最新文章
- log4j使用--http://www.cnblogs.com/eflylab/archive/2007/01/11/618001.html
- 运行时报错:java.net.BindException: Address already in use: JVM_Bind <;null>;:8080 (或8009或8005)
- MySQL 慢查询日志分析及可视化结果
- [转][译]关于CSS中的float和position和z-index
- asp.net(c#)将彩色图片变灰阶图片
- 构造方法 static 块 {}块 执行顺序
- typeid详解
- adding validation annotators to model classes 在linq to EntityFrame的Model中添加前台验证validation annotators
- IOS开发使用YiRefresh进行刷新
- 规范 : Sql statusEnum
- 【Android Developers Training】 2. 运行你的应用
- SSH中的免password登录
- TensorFlow使用GPU
- (七) Keras 绘制网络结构和cpu,gpu切换
- css子元素添加绝对定位,不添加top、left会有影响吗???
- Javascript高级编程学习笔记(80)—— 表单(8)表单序列化
- 激活函数的比较,sigmoid,tanh,relu
- jquery 圆形进度条
- 【转】32位和64位系统区别及int字节数
- [图床神器]Windows下的图片上传工具MPic
热门文章
- 一篇搞定Java集合类原理
- [Luogu P2387] [NOI2014]魔法森林 (LCT维护边权)
- 辨析:IIR(Infinite Impulse Response)与FIR(Finite Impulse Response)
- Java_基础(一)
- CSS三大特性及权重叠加
- 咀嚼Lock和Synchronized锁
- 编程,向内存0:200~0:23F依次传送数据0~63(3FH),程序中只能使用9条指令,9条指令包括 mov ax,4c00h 和 int 21h
- java类学习
- 掉电后osdmap丢失无法启动osd的解决方案
- 利用火焰图分析ceph pg分布