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.每个对象都有一个接口:通过接口给对 ...
随机推荐
- BestCoder Round #81 (div.2)C String
总体思路好想,就是在找K个不同字母的时候,卡时间. 看了大神代码,发现goto的!!!!998ms #include<cstdio> #include<cstring> #in ...
- Esper系列(七)数据缓存、外部事件应用(静态方法)
LRU Cache 功能:最近最少使用策略. 数据库查询缓存应用配置: 1 ); 12 } 13 return bean; 14 } 15 } ...
- CGAffineTransformMake(a,b,c,d,tx,ty) 矩阵运算的原理
简记: CGAffineTransformMake(a,b,c,d,tx,ty) ad缩放bc旋转tx,ty位移,基础的2D矩阵 公式 x=ax+cy+tx y=bx+dy+ty 1.矩阵的基本 ...
- 《征服c指针》学习笔记-----统计文本单词数目的程序word_count
1.程序的要求:对用户指定的英文文本文件(包括标准输入),将英文单词按照字母顺序输出到用户指定的文本文件中(包括标准输出),并且在各单词后面显示单词的出现次数. 2.模块设计: 主要分为:1.从输入流 ...
- leptonica使用问题
想要使用leptonica编写一个图像处理程序,或者调用leptonica/prog下例子程序,出现类似错误: leptTest ./test Error in pixReadStreamJpeg: ...
- CSS- 兼容样式记录
前面加* 或者_,不是CSS的正常写法,而是利用IE的解析BUG,从而实现所需要的效果.应尽量避免使用吧.* margin-left:32px; /*所有浏览器*/*margin-left:32px; ...
- 【C语言】编写一个函数实现n^k,使用递归实现
#include <stdio.h> int fuc(int x,int n) { if(n!=1) return x*fuc(x,n-1); return 1; } int main() ...
- Android软键盘调用及隐藏,以及获得点击软键盘输入的字母信息
在Android提供的EditText中单击的时候,会自动的弹出软键盘,其实对于软键盘的控制我们可以通过InputMethodManager这个类来实现.我们需要控制软键盘的方式就是两种一个是像Edi ...
- Could not find class '****', referenced from method #####
找不到类,多半也是和第三方的jar包有关. 将找不到的类.在下图中的地方勾选出来.假设jar太多.有的类有冲突的话,须要明白其先后顺序. 请外一篇和第三方jar有关的异常的文章. Conversion ...
- 特殊的forward_list操作
为了理解forward_list为什么有特殊版本的添加和删除操作,考虑当我们从一个单向链表中删除一个元素时会发生什么.当添加或删除一个元素时,删除或添加的元素之前的那个元素的后继会发生变化.为了添加或 ...