1、定义规则

· 抽象类和抽象方法都必须用abstract关键字来修饰。
· 抽象类不能被实例化,也就是不能用new关键字去产生对象。
· 抽象方法只需声明,而不需实现。
· 含有抽象方法的类必须被声明为抽象类,抽象类的子类必须复写所有的抽象方法后才能被实例化,否则这个子类还是个抽象类。

2.格式:

        abstract class 类名称 {// 定义抽象类

              声明数据成员;
        访问权限 返回值的数据类型方法名称(参数…){ //定义一般方法
                …
            }
                abstract 返回值的数据类型方法名称(参数…);
                      // 定义抽象方法,在抽象方法里,没有定义方法体
        }

注意:在抽象类定义的语法中,方法的定义可分为两种:一种是一般的方法,它和先前介绍过的方法没有什么两样;另一种是“抽象方法”,它是以abstract关键字为开头的方法,此方法只声明了返回值的数据类型、方法名称与所需的参数,但没有定义方法体。

与一般类相同,在抽象类中,也可以拥有构造方法,但是这些构造方法必须在子类中被调用。

例:

//抽象类
public abstract class chou {
    String name;
    int age;
    public chou(String name,int age){//抽象类构造方法
        this.name=name;
        this.age=age;
    }
    public abstract String show();//声明一个抽象方法show()
}

public  class chou1 extends chou {
       public chou1(String n,int a){//构造方法
           super(n,a);   //在这里必须明确调用抽象类中的构造方法 
       }
       public  String show(){//复写抽象类中show方法
           return "学生姓名"+name+",年龄"+age;
       }
}

public  class chou2 extends chou {
    
       public chou2(String name,int age){//构造方法
          super(name,age);//在这里必须明确调用抽象类中的构造方法
       }
       public  String show(){//复写抽象类中show方法
           return "老师姓名"+name+",年龄"+age;
       }
}

public class chou3 {

    public static void main(String[] args) {
        chou1 c=new chou1("d",18);
        chou2 c1=new chou2("dong",28);
        System.out.println(c.show());
        System.out.println(c1.show());
    }

}

 

posted on 2017-04-26 10:37  梦幻紫星  阅读(140)  评论(0编辑  收藏  举报