黑马程序员技术交流社区

标题: 面向对象之抽象类!!! [打印本页]

作者: 陈查理    时间: 2014-6-24 14:53
标题: 面向对象之抽象类!!!
abstract: 抽象的  
* 1.可以用来修饰类、方法
*
* 2.abstract修饰的类叫做:抽象类:
*   2.1 抽象类不可以实例化
*   2.2 抽象类中不一定非得存在抽象方法。
*   2.3 子类继承抽象类后,重写所有的抽象方法,方可实例化
*   2.4 如果子类没有重写所有的抽象方法,则此类仍未抽象类,还得用abstract修饰
*   2.5 如果子类想实例化的话,需要将直接父类和间接父类里的所有抽象方法重写。
*   
* 3.abstract修饰的方法叫做:抽象方法
*    3.1 抽象方法没有方法体,需要用abstract修饰
*    3.2 抽象方法所在的类一定是抽象类
*   
* 4.抽象类可以定义构造器!
* 5.不能用abstract修饰属性、私有方法、构造器、静态方法、final的方法。
*/
public class TestPerson1 {
        public static void main(String[] args) {
                //Person1 p1 = new Person1();
                Student s1 = new Student();
                s1.work();
                s1.talk();
                //Worker w = new Worker();
                //扩展知识
                Creator c = new Creator(){
                        public void breath(){
                                System.out.println("呼吸");
                        }
                };
               
                Worker w1 = new Worker(){
                        public void work(){
                                System.out.println("工人工作");
                        }
                        public void breath(){
                                System.out.println("工人呼吸");
                        }
                };
               
        }
}
abstract class Creator{
        public abstract void breath();
}
abstract class Person1 extends Creator{
        public void eat(){
                System.out.println("人吃饭");
        }
        //抽象方法
        public abstract void talk();
        public abstract void work();
}

class Student extends Person1{
        public void talk(){
                System.out.println("学生讨论问题");
        }
        public void work(){
                System.out.println("学生学习");
        }
        public void breath(){
                System.out.println("学生呼吸雾霾的空气");
        }
}

abstract class Worker extends Person1{
        public void talk(){
                System.out.println("工人讨论技术问题");
        }
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2