• java基础入门-父类引用子类对象(2)-抽象类


    抽象类:具有抽象方法的类,需要使用abstract关键字修饰

    关系图

     

    下面上代码

    package com.ray.testobject;
    
    /**
     * 抽象类
     * 
     * @author ray
     * @since 2015-05-02
     * @version 1.0
     * 
     */
    public abstract class Person {
    	public abstract void getDescription();
    }
    


     

    package com.ray.testobject;
    
    /**
     * 实现类
     * 
     * @author ray
     * @since 2015-05-02
     * @version 1.0
     *
     */
    public class Man extends Person {
    
    	@Override
    	public void getDescription() {
    		System.out.println("i am a man");
    	}
    
    }
    


    package com.ray.testobject;
    
    /**
     * 继续抽象一个类
     * 
     * @author ray
     * @since 2015-05-02
     * @version 1.0
     *
     */
    public abstract class Woman extends Person {
    
    	public abstract void getDescription();
    
    }
    


    package com.ray.testobject;
    
    /**
     * 实现类
     * 
     * @author ray
     * @since 2015-05-02
     * @version 1.0
     *
     */
    public class BeatifulWoman extends Woman {
    
    	@Override
    	public void getDescription() {
    		System.out.println("i am a beatiful woman");
    	}
    
    }
    


    package com.ray.testobject;
    
    /**
     * 测试类
     * 
     * @author ray
     * @since 2015-05-02
     * @version 1.0
     */
    public class Test {
    	public static void main(String[] args) {
    		Person man = new Man();
    		Person beatifulWoman = new BeatifulWoman();
    		Person[] persons = new Person[2];
    		persons[0] = man;
    		persons[1] = beatifulWoman;
    		for (int i = 0; i < persons.length; i++) {
    			persons[i].getDescription();
    		}
    	}
    }
    


     

    输出:

    i am a man
    i am a beatiful woman

    其实这里主要说明的就是Test里面for循环里面,每一个Person的类,指向子类的实现类

    然后子类实现父类的抽象方法,只需要父类引用子类对象,即可以通过调用相同的方法,然后输出不同的东西

    在这里需要特别说明一下,抽象类是不可以实例化的

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    Count on a Tree II
    DZY Loves Math
    二次剩余
    exCRT & 骆克强乘法
    CF 585 E Present for Vitalik the Philatelist
    Dirichlet 前缀和的几种版本
    51nod 1630(定积分 + 期望)
    Atcoder刷题小记
    3194. 【HNOI模拟题】化学(无标号无根树计数)
    3754. 【NOI2014】魔法森林(LCT)
  • 原文地址:https://www.cnblogs.com/raylee2007/p/4774575.html
Copyright © 2020-2023  润新知