抽象类就是在类名前加了修饰符abstract。如果这个类有方法是抽象方法也就是此方法使用abstract修饰的,那么此类就是抽象类。抽象方法没有方法主体,就是没有大括号,直接在小括号后面加分号。如:
public abstract void sayHello();
就是抽象方法。
抽象类就是为了让子类继承的,它表示从一些具体类中抽象出来的类型。
象类的特点:抽象方法一定定义在抽象类中,抽象方法和抽象类都被abstract关键字修饰;抽象类不可以用new创建对象,因为没有意义;抽象类中的方法要被使用,必须有子类覆写所有的抽象方法后,建立子类对象调用;如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类;抽象类中即可有抽象类也可以有非抽象类。抽象类中可以不定义抽象方法,这种作用仅仅用于不让该类创建对象。
抽象类事例:
class Employee
{
private string name;
private string id;
private double pay;
Employee(string name,string id,double pay)
{
this.name=name;
this.id=id;
this.pay=pay;
}
public abstract void work();
}
class Manager extends Employee
{
private int bonus;
Manager(string name,string id,double pay,int bonus)
{
super(name,id,pay);
this.bonus=bonus;
}
public void work()
{
System.out.println("manager work");
}
}
class Pro extends Employee
{
class Pro(string name,string id,double pay)
{
super(name,id,pay);
}
public void work()
{
System.out.println("Pro work");
}
}
public class AbstactDemo
{
public static void main(String[] args)
{
Manager man=new Manager(zhansan,01,100.00,400 );
Pro p=new Pro(lisi,05,200.00);
man.work();
p.work();
}
} |