zoukankan      html  css  js  c++  java
  • 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的类,指向子类的实现类

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

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

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

  • 相关阅读:
    第0课
    学前班-怎么看原理图
    LCD-裸机韦东山
    学前班
    专题8-Linux系统调用
    专题4-嵌入式文件系统
    网络编程 之 软件开发架构,OSI七层协议
    反射、元类,和项目生命周期
    多态、魔法函数、和一些方法的实现原理
    封装,接口,抽象
  • 原文地址:https://www.cnblogs.com/raylee2007/p/4774575.html
Copyright © 2011-2022 走看看