• java 初学之三 多态和抽象类


    采取递进的方式,了解比较好些。

    多态的两种方式:

    第一种方式

    package abstr;
    
    //P75 Example 4_20
    
     class 动物 {
         void cry(){}
    }
    
    classextends 动物{
        void cry() { System.out.println("汪汪....."); }
    }
    classextends 动物{
        void cry() { System.out.println("喵喵....."); }
    }
    
    public class A {
        public static void cry(动物 dongwu) {
            dongwu.cry();
        }
        
        public static void main(String[] args) {
    
            狗 gou=new 狗();
            cry(gou);
            猫 mao=new 猫();
            cry(mao);
            
            
        }
        
    
        
    }

    第二种方式

    package abstr;
    
    //P75 Example 4_20
    
     class 动物 {
         void cry(){}
    }
    
    classextends 动物{
        void cry() { System.out.println("汪汪....."); }
    }
    classextends 动物{
        void cry() { System.out.println("喵喵....."); }
    }
    
    public class A {
    
        public static void main(String[] args) {
            动物 dongwu;
            dongwu=new 狗();
            dongwu.cry();
            dongwu=new 猫();
            dongwu.cry();
        
        } 
    }

    上边的的例子是比较著名的关于多态的例子,我们往往会倾向于第一种用的比较多,不过这个也是在于编程人员自己的习惯。

    总结一下的多态的特点:

    1、继承

    2、子类重写父类的方法

    3、上转型

    多态的好处:

    对不同的对象采取统一的处理。

    关于上边的例子:不是每一个子类都必须要重写父类的方法,为了是子类必须要重写父类的方法,所以我们引入了“抽象类”的概念。

    关键字:abstract :尚未完成,表示必须要子类必须完成的任务。

    抽象类的作用:就是用来派生子类,被别的类所继承。注意不能实例化。

    上边的例子完美化:

    package abstr;
    
    //P75 Example 4_20
    
    abstract class 动物 {
        abstract void cry();
    }
    
    classextends 动物{
        void cry() { System.out.println("汪汪....."); }
    }
    classextends 动物{
        void cry() { System.out.println("喵喵....."); }
    }
    
    public class A {
        public static void cry(动物 dongwu) {
            dongwu.cry();
        }
        
        public static void main(String[] args) {
    
            狗 gou=new 狗();
            cry(gou);
            猫 mao=new 猫();
            cry(mao);
            
            
        }
        
    
        
    }
  • 相关阅读:
    PHP+ajaxfileupload与jcrop插件结合 完成头像上传
    MySQL字符集设置及字符转换(latin1转utf8)
    sysbench的安装和做性能测试
    MySQL字符集的一个坑
    MySQL执行计划解读
    启动InnoDB引擎的方法
    查询当前使用的默认的存储引擎
    Mysql技术内幕——InnoDB存储引擎
    Oracle Golden Gate原理简介
    在系统启动时,Windows Vista 中、 在 Windows 7 中,Windows Server 2008 中和在 Windows Server 2008 R2 中的 497 天后未关闭 TIME_WAIT 状态的所有 TCP/IP 端口
  • 原文地址:https://www.cnblogs.com/flashweb/p/2965761.html
Copyright © 2020-2023  润新知