zoukankan      html  css  js  c++  java
  • 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);
            
            
        }
        
    
        
    }
  • 相关阅读:
    unittest_assert断言(4)
    unittest_skip跳过用例执行(3)
    unittest_TestSuite测试套件(2)
    unittest_认识unittest(1)
    Selenium_POM架构(17)
    【转】HTML基本代码
    cursor 鼠标样式的几种样式
    【笔记】在json-lib中如何不序列化某些字段
    关于Ext的一些使用心得
    GIT
  • 原文地址:https://www.cnblogs.com/flashweb/p/2965761.html
Copyright © 2011-2022 走看看