抽象:
为什么要引入这个概念?在以后工作进行项目开发时,因为一个项目不可能是只有一个人在写,一定是多人共同开发,因此在写有共性的方法时,每个人的方法名或者参数都可能不一样,因此要在父类中规定抽象方法。
抽象类(abstract)
抽象方法: 将共性的行为(方法)抽取到父类之后,由于每一个子类执行的内容是不一样,所以,在父类中不能确定具体的方法体。该方法就可以定义为抽象方法。
抽象类: 如果一个类中存在抽象方法,那么该类就必须声明为抽象类
抽象类和抽象方法格式:
public abstract 返回值类型 方法名(参数列表)
public abstract class 类名()
注意事项:
当类中有抽象方法时,该类必须为抽象类,不然会报错;但是如果该类为抽象类,类中可以有非抽象方法。
当子类继承抽象父类时,必须重写父类中所有的抽象方法,不然会报错。
抽象方法不可以有方法体。
小案例
1.抽取共性将其封装到父类JAVABEAN中
public abstract class Animal { // 因为有抽象方法所以必须要为抽象类
private String name ;
private int age;
public Animal() {
}
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
/**
* 获取
* @return name
*/
public String getName() {
return name;
}
/**
* 设置
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* 获取
* @return age
*/
public int getAge() {
return age;
}
/**
* 设置
* @param age
*/
public void setAge(int age) {
this.age = age;
}
public String toString() {
return "Animal{name = " + name + ", age = " + age + "}";
}
public void drink()
{
System.out.println("喝水");
}
public abstract void eat(); //抽象方法
}
2.子类JAVABEAN
3.最终测试类
测试结果