面向对象多态以及转型

package com_package1;

public class Dog extends Animal{

    public void eat()
    {

        System.out.println("啃骨头");
    }//将父类中的抽象方法实例化
    public void lookHome()
    {
        System.out.println("看家");
    }//够的特有属性

}
package com_package1;

public class Cat extends Animal {
    public void eat()
    {
        System.out.println("eat fish");

    }
    public void catchMouse()
    {

        System.out.println("catMouse");
    }
}
package com_package1;

public class Pig extends Animal{
   public void eat()
   {

       System.out.println("siliao");
   }
   public void gongDi() {
       System.out.println("gongdi");

}
}
package com_package1;

public class DuotaiDemo {
       public static void main(String[]args)
       {
           Pig p  = new Pig();
           Dog d = new Dog();
           Cat c = new Cat();
           method(p);
           method(d);
           method(c);

       }
       public static void method(Animal a)
       {    a.eat();
           if(a instanceof Cat)

           {Cat c =  (Cat)a;
           c.catchMouse();}
           else if(a instanceof Dog)
           {  Dog d = (Dog)a;
              d.lookHome();
              }
           else
           {Pig p = (Pig)a;
           p.gongDi();}
       }

}

接口和多态练习

package com_package1;

public class NoteBook {
    public void run()
    {

        System.out.println("enable");
        System.out.println("disabble");
    }
    public void useUSB(USB u)
    {
        if(u!=null)
        {
            u.able();
            u.enable();

        }

    }
}
package com_package1;

public interface USB {
    public void able();
    public void enable();

}
package com_package1;

public class UDisk implements USB {

    @Override
    public void able() {
        // TODO Auto-generated method stub
        System.out.println("disk able");
    }

    @Override
    public void enable() {
        // TODO Auto-generated method stub
     System.out.println("disk enable");
    }

}
package com_package1;

public class Umouse implements USB{

    @Override
    public void able() {
        // TODO Auto-generated method stub
        System.out.println("mouse able");
    }

    @Override
    public void enable() {
        // TODO Auto-generated method stub
        System.out.println("mouse enable");

    }

}
package com_package1;

public class NoteBookDemo {
    public static void main(String[]args)
    {
        NoteBook nt = new NoteBook();
        nt.run();
    //    nt.useUSB(u);
        nt.useUSB(null);
        nt.useUSB( new UDisk());
        nt.useUSB(new Umouse());

    }

}
时间: 2024-10-13 14:35:45

面向对象多态以及转型的相关文章

09.面向对象多态的概述及其代码体现

09.01_面向对象(多态的概述及其代码体现) A:多态(polymorphic [,p?l?'m??f?k])概述 事物存在的多种形态 B:多态前提 a:要有继承关系. b:要有方法重写. c:要有父类引用指向子类对象. C:案例演示 代码体现多态 案例: class Demo1_Polymorphic { public static void main(String[] args) { Cat c = new Cat();//猫是一只猫 c.eat(); Animal a = new Cat

黑马程序猿-面向对象-多态

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Unity开发</a>.<a href="http://edu.csdn.net"target="blank">.Net培训</a>.期待与您交流! ---------------------- 一多态的前提:(1)要有继承关系(或

黑马程序员-面向对象-多态

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Unity开发</a>.<a href="http://edu.csdn.net"target="blank">.Net培训</a>.期待与您交流! ---------------------- 一多态的前提:(1)要有继承关系(或

转:OC面向对象—多态

OC面向对象—多态 一.基本概念 多态在代码中的体现,即为多种形态,必须要有继承,没有继承就没有多态. 在使用多态是,会进行动态检测,以调用真实的对象方法. 多态在代码中的体现即父类指针指向子类对象. Animal类的声明 Animal类的实现 Dog类继承自Animal类 Dog类的实现 测试程序: 二.使用注意 代码分析: Dog *d=[[Animal  alloc] init];   动物是一条狗?语义正确吗? NSString *str=[Dog  new];     狗是一个字符串?

OC面向对象-多态

OC面向对象-多态 一.基本概念 1>多态在代码中的体现,即为多种形态,没有继承就没有多态 2>在使用多态时,会进行动态检测,以调用真实的对象方法 3>多态在代码中的体现即父类指针指向子类对象 Animal类的声明 #import <Foundation/Foundation> //声明一个Animal类,该类继承自NSObject @interface Animal : NSObject //在Animal类中声明一个eat的对象方法 -(void) eat; @end A

面向对象多态之接口

申明下:我也是新手,以下如有不对或不合适的地方望指出,一起交流O(∩_∩)O哈! 好了,转入正题 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace Interface 7 { 8 class InterfaceTest 9 { 10 static void Main(string[] args) 11 { 12 #region 测试

C#编程语言与面向对象—— 多态

多态编程的基本原理是: 使用基类或接口变量编程. 在多态编程中,基类一般都是抽象类,其中拥有一个或多个抽象方法,各个子类可以根据需要重写这些方法.或者使用接口,每个接口都规定了一个或多个抽象方法,实现接口的类根据需要实现这些方法. 因此,多态的实现分为两大基本类别:继承多态和接口多态. 继承多态 设想动物园饲养员每天需要给他所负责死样的狮子.猴子和鸽子喂食. 首先,建立三个类分别代表三个动物 饲养员用Feeder类表示.由于三种动物吃的动物一样,Feeder类必须拥有三个喂动物的公共方法: 过程

.Net学习 第3季 C#面向对象 多态

.Net 视频学习第2季 C#面向对象 面向对象 多态 概念:让一个(父类)对象表现出多种(子类)类型的特性:三种方法:虚方法/抽象类/接口 方法一:虚方法 将父类方法标记为虚方法,使用关键字virtual在返回值类型前,这个方法可以被子类重写一遍(在子类方法返回值类型前使用关键字override) 没有使用虚方法下: public class Person { private string _name; public string Name { get{return _name;} set{_

面向对象-多态的扩展实例

/** * 注意:以下语句为非可执行语句.不能运行 * Created by rabbit on 2014-07-29. * 需求 * 对数据库进行操作 * * 1.连接数据库 * 两种连接方式 * a.JDBC(java数据库连接) * b.Hibernate(框架连接) * * 2.操作数据库 * c create r read u update d delete * * 3.断开数据库 * * userinfoDAO * DAO data access object */ interfac