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 多态的更多相关文章

  1. JAVA自学笔记15

    JAVA自学笔记15 @例题1:共有5个学生,请把五个学生的信息存储到数组中,并遍历数组,并获取每个学生的信息 Students[] students=new Student[5]; Student ...

  2. java新手笔记32 jdk5新特性

    1.for package com.yfs.javase; import java.awt.Color; import java.util.Calendar; import java.util.Has ...

  3. java新手笔记26 Frame

    0.Calculater package com.yfs.javase; import java.awt.BorderLayout; import java.awt.Button; import ja ...

  4. java新手笔记25 日期格式化

    1.系统时间 package com.yfs.javase; import java.sql.Time; import java.sql.Timestamp; import java.util.Cal ...

  5. java新手笔记24 Math/String对象

    1.Math package com.yfs.javase; public class MathDemo { public static void main(String[] args) { int ...

  6. java新手笔记23 异常

    1.import package com.yfs.javase; import java.util.Scanner; //import java.lang.String;//默认导入 public c ...

  7. java新手笔记19 抽象类

    1.Shap package com.yfs.javase; public class Shape /*extends Object */{ //默认继承object object方法全部继承 //计 ...

  8. java新手笔记2 数据类型

    1.注释 /** doc注释 * 类说明信息 */ //声明类 文件名与类名一致 public class World {//类定界符 //声明方法 main方法 public static void ...

  9. Thinking In Java 学习笔记 1-5 章

    第1章 对象导论 本章主要讲OOP的思想及一些OOP基本概念 1.抽象过程:万物都是对象,对象具有状态.行为和标识.对象拥有属性和方法,以及在内存中的唯一地址. 2.每个对象都有一个接口:通过接口给对 ...

随机推荐

  1. Storm系列(十一)架构分析之Supervisor-管理Worker进程的事件线程

    处理流程:   方法原型: (defn sync-processes [supervisor]) 函数说明: Supervisor是一个supervisor-data对象. 从local-state中 ...

  2. HW5.4

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  3. HW4.1

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  4. 问题-[Delphi]PixelFormat 图像颜色的数据格式

     PixelFormat: (指定图像中每个像素的颜色数据的格式) Delphi                                        微软                  ...

  5. oracle中使用sql查询时字段为空则赋值默认

    转至:http://www.th7.cn/db/Oracle/201501/86125.shtml oracle 通过 nvl( )函数sql 查询时为 空值 赋默认值 oracle 函数介绍之nvl ...

  6. 使用Camstudio和KeyCastOW来录屏制作软件Demo视频

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:使用Camstudio和KeyCastOW来录屏制作软件Demo视频.

  7. IOS 中runtime 不可变数组__NSArray0 和__NSArrayI

    IOS 中runtime 不可变数组__NSArray0 和__NSArrayI 大家可能都遇到过项目中不可变数组避免数组越界的处理:runtime,然而有时候并不能解决所有的问题,因为类簇不一样 # ...

  8. spring的有状态BEAN和无状态BEAN

    有状态会话bean   :每个用户有自己特有的一个实例,在用户的生存期内,bean保持了用户的信息,即“有状态”:一旦用户灭亡(调用结束或实例结束),bean的生命期也告结束.即每个用户最初都会得到一 ...

  9. iOS 火星坐标相关整理及解决方案汇总(转)

    这几天在处理定位相关的代码,彻彻底底的被火星坐标恶心到了. 恶心列表 从 CLLocationManager 取出来的经纬度放到 mapView 上显示,是错的! 从 CLLocationManage ...

  10. dubbo使用方法

    dubbo使用方法. Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载. ...