什么是抽象类:
在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
抽象类的特点:
抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。
由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。
在Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口
public abstract class Animal{
private String name;
private int month;
public Animal() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getMonth() {
return month;
}
public void setMonth(int month) {
this.month = month;
}
public abstract void eat();
public static void temp() {
System.out.println("我是父类的静态方法");
}
}
public class Dog extends Animal{
private String sex;
public Dog() {
System.out.println("汪汪汪");
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public void eat() {
System.out.println("小狗啃骨头");
}
public void sleep() {
System.out.println("我是懒狗,我贼能睡");
}
}
静态需要特别注意的8点
-
抽象类无法实例化对象
-
抽象方法没有方法体
-
父类的抽象方法必须被子类重写
-
抽象方法必须在抽象类中
-
抽象类中不一定有抽象方法
-
抽象方法不能有private,static,final关键字
-
若子类不想重写父类的方法,可以将子类改为抽象类
-
抽象方法在子类实现时,访问权限必须大于等于父类的方法(重写)