抽象类:具有抽象方法的类,需要使用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的类,指向子类的实现类
然后子类实现父类的抽象方法,只需要父类引用子类对象,即可以通过调用相同的方法,然后输出不同的东西
在这里需要特别说明一下,抽象类是不可以实例化的
原文地址:http://blog.csdn.net/raylee2007/article/details/45442123