1.定义格式:
public abstract class 类名{ //抽象类
public abstract void 方法名();//定义抽象方法,抽象方法没有方法体。
}
*2.用法:
1.使用abstract修饰的类或方法称为抽象类或抽象方法。
2.抽象类中不一定要有抽象方法,即可以有抽象方法,也可以有普通方法。
3.抽象类不能被实例化,只能通过子类重写抽象方法,进行使用抽象方法。
4.抽象方法一定是公共的(public),以便能被子类重写。
5.抽象类中,可以有包含具体的方法和变量。
6.子类可以是普通类也可以是抽象类。但子类必须重写父类中的所有抽象方法。如果不全部重写,则子类需要定义为抽象类。
抽象方法:
1.抽象方法一定存在抽象类中。
2.抽象方法没有方法体。即没有“{}”。
3.案例:
class person
{
public static void main(String[] args)
{
people p = new teacher("老师"); //父类引用指向子对象,编译看左边,执行看右边
p.work();
people p1 = new driver("驾驶员"); //父类引用指向子对象
p1.work();
}
}
abstract class people //抽象类
{
public abstract void work(); //抽象方法不需要方法体{}
}
class teacher extends people
{
private String work;
public teacher(String work) //有参构造
{
this.work = work;
}
public void work() //父类方法重写
{
System.out.println("我的职业是:" + this.work);
}
}
class driver extends people
{
private String work;
public driver(String work) //有参构造
{
this.work = work;
}
public void work() //父类方法重写
{
System.out.println("我的职业是:" + this.work);
}
}
运行结果:
我的职业是:老师
我的职业是:驾驶员