多态

多态:同一事件发生在不同对象身上的效果.  父类引用指向子类对象

例如:

package listen;

public class test1 {

//同一事件发生在不同对象身上产生的结果

public static void main(String[] args) {

//创建猫狗对象

Animal d = new Dog();

d.name = "大黄";

d.eat(d);

//多态实现前提:继承,重写,父类引用指向子类对象

if(d instanceof Dog){

System.out.println("这是一个狗狗对象");

Dog g = (Dog)d;

g.lookHome(g);

}else{

System.out.println("这是对象不是狗狗对象");

}

}

}

abstract class Animal{

public String name;

public abstract void eat(Animal a);

}

class Dog extends Animal{

@Override

public void eat(Animal a) {

// TODO Auto-generated method stub

System.out.println("我说一只狗,我叫"+this.name+"我爱吃骨头");

}

public void lookHome(Dog g){

System.out.println("我正在看家");

}

}

class Cat extends Animal{

@Override

public void eat(Animal a) {

System.out.println("我是一只小猫,我叫"+this.name+"我爱吃鱼");

}

}


多态:1.必须有继承  2.父类引用指向子类对象\

强制转换类型:Animal a = new Cat();

interfaceof判断a的真实类型是不是Cat  Cat c = (Cat)a;     判断一个对象真实类型

if (a instanceof Cat) {

System.out.println("猫类");

Cat c = (Cat)a;//强制类型转换

c.sleep();

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 多态就是对象的多种形态,即相同的消息使得不同的类做出不同的响应。 多态存在的三个必要条件:继承、重写、父类变量引用...
    予别她阅读 457评论 0 0
  • 第2章 多态2.1 多态概述多态是继封装、继承之后,面向对象的第三大特性。现实事物经常会体现出多种形态,如学生,学...
    葡小萄家的猫阅读 3,275评论 1 6
  • 一.成员变量与局部变量的区别 成员变量:在类中定义,用来描述对象将要有什么(属性)。可被本类方法和其他跟当前类有关...
    jeffierw阅读 568评论 0 0
  • 基本概念 多态是面向对象编程语言的关键特征之一。多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接...
    我是老薛阅读 234评论 0 0
  • 写在前面的话: 总是在灾难发生后,才想起容灾的重要性; 总是在吃过亏后,才记得曾经有人提醒过。 核心军规 1、不在...
    小程故事多阅读 4,238评论 2 31