多态的作用
来源:互联网 发布:oracle数据库代理商 编辑:程序博客网 时间:2024/04/28 07:31
对象的上转型对象体现了多态。多态的作用:将不同的子类对象统一看做父类,屏蔽了不同子类之间的差异,有子类到父类,有特殊到一般,是程序变得通用。
public class TestPloy{
public sataic void main(String[] args){
Dog a0=new Dog();
Cat a1=new Cat();
Tiger a2=new Tiger();
Sheep a3=new Sheep();
Wolf a4=new Wolf();
Mouse a5=new Mouse();
Snake a6=new Snake();
Monkey a7=new Monkey();
Cock a8=new Cock();
YelloMouseWolf a9=new YelloMouseWolf();
a0.eat();
a1.eat();
a2.eat();
a3.eat();
a4.eat();
a5.eat();
a6.eat();
a7.eat();
a8.eat();
a9.eat();
}
}
class Animal{
public void eat(){
}
}
class Dog extends Animal{
public void eat(){
System.out.println("Dog eat...")
}
}
class Cat extends Animal{
public void eat(){
System.out.println("Cat eat...")
}
}
class Tiger extends Animal{
public void eat(){
System.out.println("Tiger eat...")
}
}
class Sheep extends Animal{
public void eat(){
System.out.println("Sheep eat...")
}
}
class Wolf extends Animal{
public void eat(){
System.out.println("Wolf eat...")
}
}
class Mouse extends Animal{
public void eat(){
System.out.println("Mouse eat...")
}
}
class Snake extends Animal{
public void eat(){
System.out.println("Snake eat...")
}
}
class Monkey extends Animal{
public void eat(){
System.out.println("Monkey eat...")
}
}
class Cock extends Animal{
public void eat(){
System.out.println("Cock eat...")
}
}
class YelloMouseWolf extends Animal{
public void eat(){
System.out.println("YelloMouseWolf eat...")
}
}
从上面的程序可以看出比较麻烦,下面是用多态来简化后的程序
public class TestPloy{
public sataic void main(String[] args){
Animal[] a=new Animal[10];//将子类对象统一看做父类对象
a[0]=new Dog();
a[1]=new Cat();
a[2]=new Tiger();
a[3]=new Sheep();
a[4]=new Wolf();
a[5]=new Mouse();
a[6]=new Snake();
a[7]=new Monkey();
a[8]=new Cock();
a[9]=new YelloMouseWolf();
for(int i=0;i<a.length;i++){
a[i].eat();
}
}
class Animal{
public void eat(){
}
}
class Dog extends Animal{
public void eat(){
System.out.println("Dog eat...")
}
}
class Cat extends Animal{
public void eat(){
System.out.println("Cat eat...")
}
}
class Tiger extends Animal{
public void eat(){
System.out.println("Tiger eat...")
}
}
class Sheep extends Animal{
public void eat(){
System.out.println("Sheep eat...")
}
}
class Wolf extends Animal{
public void eat(){
System.out.println("Wolf eat...")
}
}
class Mouse extends Animal{
public void eat(){
System.out.println("Mouse eat...")
}
}
class Snake extends Animal{
public void eat(){
System.out.println("Snake eat...")
}
}
class Monkey extends Animal{
public void eat(){
System.out.println("Monkey eat...")
}
}
class Cock extends Animal{
public void eat(){
System.out.println("Cock eat...")
}
}
class YelloMouseWolf extends Animal{
public void eat(){
System.out.println("YelloMouseWolf eat...")
}
}
多态的常用方法:
1.把多态用在方法参数上,形参可以是父类引用,实参可以传子类对象。
m(A a):可以用A的任何子类对象作为参数
2.把多态用在方法的返回值上
A m():m方法完全可以返回A的某个子类对象
public class TestPloy{
public sataic void main(String[] args){
Dog d=new Dog();
m1(d);
Cat c=new Cat();
m1(c);
Animal a1=m2(10);
Animal A2=m2(11);
}
static void m1(Animal a){//多态用在方法的参数上
a.eat();
}
static Animal m2(int k){//多态用在方法的返回值上
if(k%2==0) return new Dog();
else return new Cat();
}
}
class Animal{
public void eat(){
}
}
class Dog extends Animal{
public void eat(){
System.out.println("Dog eat...")
}
}
class Cat extends Animal{
public void eat(){
System.out.println("Cat eat...")
}
}
- 多态的作用
- 多态的作用
- 多态的作用
- 多态的作用
- 多态的作用
- 多态的作用
- 多态的作用
- JAVA 多态的作用
- 多态的概念和作用
- 多态的概念和作用
- 多态的概念和作用
- 多态的概念和作用
- 多态的概念和作用
- 多态的概念和作用
- 封装,继承,多态的作用
- 多态的概念和作用
- 多态的作用——通用性
- 多态的概念和作用
- 正则表达式的快速学习和使用(基础)
- C/C++内存泄漏检测
- 微信jssdk领取卡券
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- 厉 害 了!'我的' TP5 !!!
- 多态的作用
- Linux笔记 程序调试gdb
- 微信小程序开发 | 来自小程序开发者的实例教程
- CSS 列表样式详解
- eclipse反编译
- 面试题37:两个链表的第一个公共结点
- 前后端框架
- Visual Studio 2012 编译错误【error C4996: 'scanf': This function or variable may be unsafe. 】的解决方案
- CentOS7 安装mysql 8.0