1.概念:
(1)抽象方法
只有声明,没有方法体,必须使用abstract关键字修饰。
拥有抽象方法的类为抽象类。(用来定义功能)
由于父类方法的不确定性,所以用抽象类将父类设计的抽象化,以至于它无任何具体事例。
● 如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类
● 抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方 法和构造方法。
● 用abstract修饰的类就是抽象类。若类中包含有抽象方法,那么该类就必须定义成抽象类,但抽象类可以没有抽象方法。
2.特点:
●抽象类不能被实例化,但可以有构造方法,因为抽象类中含有无具体实现的方法, 所以不能用抽象类创建对象。
●抽象类只能用作父类,表示的是一种继承关系。继承抽象类的非抽象类必须实现其中的所有抽象方法,而已实现方法的参数、返回值要和抽象类中的方法一 样。否则,该类也必须声明为抽象类
简而言之:抽象类生来就是当爹的 !!!
3.定义抽象类
abstract class A{
public void fun(){
System.out.println("有方法体的方法");
}
public abstract void funny();// 抽象方法,无方法体
}
4.代码实现:
public abstract class Animal {
private String name;
private int age;
/*
abstract修饰的方法叫抽象方法
抽象方法没有方法体,没有具体的实现,主要是用来定义功能
*/
public abstract void eat();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
/*
Dog类继承抽象类之后,重写了抽象类中抽象方法
*/
public class Dog extends Animal {
@Override
public void eat() {
System.out.println("狗吃骨头");
}
}