java中instanceof用法

 多态中判断类型关键字   instanceof

 


/*
对象的多态性
动物

猫 x = new 猫();
x.吃饭();

狗 y = new 狗();
y.吃饭()

动物 d =new 猫();
d.吃饭();
*/
abstract class Animal
{
 public abstract void eat();
}
class Cat extends  Animal
{
 public void eat()
 {
   System.out.println("猫吃猫粮");
 }
 public void catchMouse()
 {
 System.out.println("猫在抓老鼠");
 }

}
class Dog extends Animal
{
 public void eat()
 {
   System.out.println("狗吃骨头");
 }
 public void lookDoor()
 {
 System.out.println("狗在看门");
 }
}
class Pig extends Animal
{
 public void eat()
 {
   System.out.println("猪吃饲料");
 }
}
class Bird extends Animal
{
 public void eat()
 {
 System.out.println("鸟最爱吃害虫");
 }
}
class DuoTaiDemo1
{
 public static void main(String[] args)
 {
  /*
  Cat c = new Cat();
  Cat c1 = new Cat();
  function(c);
  function(c1);

  Dog d = new Dog();
  d.eat();

  Pig p =new Pig();
  p.eat();
  */
  function(new Cat());
  function(new Dog());
  /*function(new Pig());
  function(new Bird());
  */
 }

 public static void function(Animal a)//Animal a = new Cat(); Animal a = new Dog();
 {
 
   if(a instanceof Cat)
     {
     Cat  c =(Cat)a;
  c.eat();
  c.catchMouse();
    }
    else if(a instanceof Dog)
    {
       Dog d =(Dog)a;
    d.eat();
    d.lookDoor();
    }

 }
 /*
 public static void function(Cat c)
 {
   c.eat();
 }
 public static void function(Dog d)
 {
   d.eat();
 }
 public static void function(Pig p)
 {
   p.eat();
 }
 public static void function(Bird b)
 {
   b.eat();
 }
 */

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值