java新手笔记15 多态
1.Animal类
package com.yfs.javase;
public class Animal { public void cry() {
System.out.println("动物叫...");
} }
2.Dog/Cat/Bird类
package com.yfs.javase;
public class Dog extends Animal {
public void cry() {
System.out.println("汪 汪...");
}
}
class Cat extends Animal {
public void cry () {
System.out.println("喵 喵...");
}
}
class Bird extends Animal {
public void cry () {
System.out.println("嘎 嘎...");
}
}
3.Box类,(集合)
package com.yfs.javase;
public class Box {
// 动物房在哪里 10個動物
// private Dog[] dogs = new Dog[10];
// private Cat[] cats = new Cat[10];
// private Bird[] birds = new Bird[10];
//声明父类数组
private Animal[] animals = new Animal[10];
private int index = 0;
// 装动物
public void addAnimal(Animal pet) {
if (index >= 10) {
System.out.println("箱子已满");
return;
}
animals[index] = pet;
index++;
//System.out.println(pet);
}
//
// public void addAnimal(Cat cat) {
// if (index >= 10) {
// System.out.println("箱子已满");
// return;
// }
// cats[index] = cat;
// index++;
// }
// 踢箱子
public void kid() {
for (int i = 0; i < animals.length; i++) {
animals[i].cry();//执行的是子类的方法 多态 覆盖的方法
}
}
}
4.Box测试
package com.yfs.javase;
import java.util.Random;
public class BoxTest {
public static void main(String[] args) {
Box box = new Box();
// box.addAnimal(new Dog());
// box.addAnimal(new Bird());
// box.addAnimal(new Cat());
Random ran = new Random();
for (int i = 0; i < 15; i++) {
int r = ran.nextInt(101);// 100 65 35
if(r > 65) {
box.addAnimal(new Dog());
} else if( r > 35) {
box.addAnimal(new Cat());
} else {
box.addAnimal(new Bird());
}
}
box.kid();
}
}
java新手笔记15 多态的更多相关文章
- JAVA自学笔记15
JAVA自学笔记15 @例题1:共有5个学生,请把五个学生的信息存储到数组中,并遍历数组,并获取每个学生的信息 Students[] students=new Student[5]; Student ...
- java新手笔记32 jdk5新特性
1.for package com.yfs.javase; import java.awt.Color; import java.util.Calendar; import java.util.Has ...
- java新手笔记26 Frame
0.Calculater package com.yfs.javase; import java.awt.BorderLayout; import java.awt.Button; import ja ...
- java新手笔记25 日期格式化
1.系统时间 package com.yfs.javase; import java.sql.Time; import java.sql.Timestamp; import java.util.Cal ...
- java新手笔记24 Math/String对象
1.Math package com.yfs.javase; public class MathDemo { public static void main(String[] args) { int ...
- java新手笔记23 异常
1.import package com.yfs.javase; import java.util.Scanner; //import java.lang.String;//默认导入 public c ...
- java新手笔记19 抽象类
1.Shap package com.yfs.javase; public class Shape /*extends Object */{ //默认继承object object方法全部继承 //计 ...
- java新手笔记2 数据类型
1.注释 /** doc注释 * 类说明信息 */ //声明类 文件名与类名一致 public class World {//类定界符 //声明方法 main方法 public static void ...
- Thinking In Java 学习笔记 1-5 章
第1章 对象导论 本章主要讲OOP的思想及一些OOP基本概念 1.抽象过程:万物都是对象,对象具有状态.行为和标识.对象拥有属性和方法,以及在内存中的唯一地址. 2.每个对象都有一个接口:通过接口给对 ...
随机推荐
- Storm系列(十一)架构分析之Supervisor-管理Worker进程的事件线程
处理流程: 方法原型: (defn sync-processes [supervisor]) 函数说明: Supervisor是一个supervisor-data对象. 从local-state中 ...
- HW5.4
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- HW4.1
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- 问题-[Delphi]PixelFormat 图像颜色的数据格式
PixelFormat: (指定图像中每个像素的颜色数据的格式) Delphi 微软 ...
- oracle中使用sql查询时字段为空则赋值默认
转至:http://www.th7.cn/db/Oracle/201501/86125.shtml oracle 通过 nvl( )函数sql 查询时为 空值 赋默认值 oracle 函数介绍之nvl ...
- 使用Camstudio和KeyCastOW来录屏制作软件Demo视频
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:使用Camstudio和KeyCastOW来录屏制作软件Demo视频.
- IOS 中runtime 不可变数组__NSArray0 和__NSArrayI
IOS 中runtime 不可变数组__NSArray0 和__NSArrayI 大家可能都遇到过项目中不可变数组避免数组越界的处理:runtime,然而有时候并不能解决所有的问题,因为类簇不一样 # ...
- spring的有状态BEAN和无状态BEAN
有状态会话bean :每个用户有自己特有的一个实例,在用户的生存期内,bean保持了用户的信息,即“有状态”:一旦用户灭亡(调用结束或实例结束),bean的生命期也告结束.即每个用户最初都会得到一 ...
- iOS 火星坐标相关整理及解决方案汇总(转)
这几天在处理定位相关的代码,彻彻底底的被火星坐标恶心到了. 恶心列表 从 CLLocationManager 取出来的经纬度放到 mapView 上显示,是错的! 从 CLLocationManage ...
- dubbo使用方法
dubbo使用方法. Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载. ...