zoukankan      html  css  js  c++  java
  • 多态-实例

    /**
    * Created by rabbit on 2014-07-21.
    * 当多个类中 出现相同功能。但是功能主体不同。这时可以进行向上
    * 抽取,这时,只抽取功能定义,而不抽取功能主体。
    *
    * 抽象 看不懂
    *
    * 抽象类的特点
    * 1、抽象方法一定定义在抽象类中
    * 2、抽象方法和抽象类都必须被abstract 修饰
    * 3、抽象类不可以被new 创建对象,因为调用抽象方法没意义
    * 4、抽象类中的方法要被使用,必须由子类复写其所有的抽象
    * 方法后,建议子类对象调用。如果子类只覆盖了部分抽象方法
    * 该子类还是一个抽象类。
    *
    * 抽象类和一般类没有太大的不同
    * 该如何描述事物,就如何描述事物。只不过该事物中出现了一些
    * 看不懂的东西,这些不确定的部分,也是该事物的功能,需要明确
    * 出现,但是无法定义主题
    *
    * 抽象类中比一般类多了个抽象函数,就是在类中可以定义抽象方法
    * 抽象类不可以贝实例化
    *
    * 特殊:抽象类中可以不定义抽象方法,这样做,仅仅是不让该类建立
    * 对象。
    */
    abstract class student
    {
        public abstract void study();
        public abstract void sleep();

    }
    class Basestudent extends student
    {
        public void study()
        {
            System.out.println("Base study");
        }
        public void sleep()
        {
            System.out.println("坐着睡");
        }
        public void eat()
        {
            System.out.println("坐着吃饭");
        }
    }

    class Advstudent extends student
    {
        public void study()
        {
            System.out.println("Adv study");
        }
        public void sleep()
        {
            System.out.println("躺着睡");
        }
    }

    class Dostudent
    {
        public void doSome(student stu)
        {
            stu.study();
            stu.sleep();
        }
    }
    public class DuoTaiDemo
    {
        public static void main(String [] args)
        {
            Dostudent ds = new Dostudent();
            ds.doSome(new Basestudent());
            ds.doSome(new Advstudent());
        }

    }

  • 相关阅读:
    OS程序开发引用的第三方库之间出现冲突的处理方法
    ios的指令集(转)
    查看lib库支持的IOS指令集
    Audio Session Programming Guide
    Swift中文教程
    NSString 与 char * 互转
    id 与void *类型的转换(转)
    versions使用(转)
    superview透明问题
    Python 头部 #!/usr/bin/python 和 #!/usr/bin/env 的区别
  • 原文地址:https://www.cnblogs.com/liupengcheng/p/3835807.html
Copyright © 2011-2022 走看看