抽象方法:就是在普通方法中加上abstract关键字,然后去掉大括号,直接分号结束。
抽象类: 抽象方法所在的类必须是抽象类。在class前加上一个abstract就可以了。
如何使用抽象类和抽象方法:
* 1.不能直接创建抽象类对象
* 2.必须用一个子类来继承抽象父类
* 3.子类必须覆盖重写抽象父类当中所有的抽象类方法
* 覆盖重写(实现):子类去掉抽象方法的abstract关键字,然后补上方法提的大括号。
* 4.创建子类对象,进行使用。
* 5.如果父类有 有参构造方法,则子类必须显示的条用父类的构造方法
1.创建一个父类
public abstract class chouxiang {
//创建三个抽象方法
public abstract void eat();
public abstract void sleep();
public abstract void sport();
//普通方法
public void normal() {
System.out.println("早上好啊!");
}
}
2.然后创建一个子类
public abstract class chouxiang2 extends chouxiang{
//在子类当中,只集成了父类当中的eat,sleep方法,还少了sport方法,因此会报错。
//所以需要在子类class前面加上abstract关键字,如此一来,子类也成为了一个抽象类,需要调用的话那就对再创建一个孙类。
public void eat() {
System.out.println("吃零食。");
}
public void sleep() {
System.out.println("睡觉觉。");
}
}
3.创建一个孙类
此时,需要将子类当中的抽象方法都覆盖重写下来,且需要将子类未覆盖重写父类的sport方法也覆盖重写下来,这样就不用写一个abstract在class前面了,也就是说,孙类不是一个抽象类了,可以被其他类调用了。
注意:如果想要继承子类的方法,需要在覆盖重写方法的大括号中写上super.方法名();
如果
public class chouxiang3 extends chouxiang2 {
public void eat() {
super.eat();
}
public void sleep() {
System.out.println("睡觉3");
}
public void sport() {
System.out.println("跳绳");
}
}
4.创建一个其他类
public class chouxiang4 {
public static void main(String[] args) {
//创建一个标题3的对象
chouxiang3 one=new chouxiang3();
//调用标题3的slee方法
one.sleep(); //睡觉3
//调用了标题2中的eat方法
one.eat(); //吃零食。
}
}