1、什么是抽象类:
-
-类和类之间具有共同的特征,将这些共同特征提取出来,形成就是抽象类。
-
-类本身是不存在的,所以抽象类无法创建对象(无法实例化)。
2、抽象类属于什么类型:
-
抽象类属于引用数据类型。
3、抽象类的定义:
-
-语法: 【修饰符列表】abstract class 类名{ 类体; }
4、抽象类是无法实例化的,无法创建对象的,所以抽象类是用来被子类继承的。
5、final和abstract不能联合使用,两个关键字是对立的。
6、抽象类的子类可以是抽象类。
7、抽象类虽然无法实例化,但是有构造方法,这个构造方法是给子类使用的。
8、抽象方法:
- -表示没有实现的方法,没有方法体的方法。
- -抽象类中不一定有抽象方法,有抽象方法必须在抽象类中。
- -特点:以“;”结尾;用abstract关键字修饰。
public class abstractTest01 {//抽象类
public static void main(String [] args){
// System.out.println("m");
}
}
abstract class AB{//抽象类无法实例化
// public AB(){}
// public AB(int d){
// }
public abstract void dott();
}
//子类继承抽象类,子类可以实例化对象
class ab extends AB{
public void dott() {
}
// public ab(){
// super();
// }
}
//抽象类的子类可以是抽象类
abstract class Ab extends AB{
}
9、一个小问题:
- java 语言中凡是没有方法体的方法都是抽象方法。(错)
–Object类中就有很多方法没有方法体,都是以“;”结尾的,但他们不是抽象方法。
public class abstractTest02 {
public static void main(String [] args){
Animal a=new Mammal();//多态,能用就多用
a.move();
}
}
abstract class Animal{//动物抽象类
public abstract void move();//抽象方法
}
class Mammal extends Animal{//哺乳动物类继承动物抽象类
@Override//覆盖
public void move() {
/**
* 需要将从父类中继承过来的抽象方法进行覆盖/重写,或者也叫做“实现”。
* 把抽象的方法实现了,不然会报错。
*/
System.out.println("小猫在钓鱼");
}
}
//子类抽象类继承父类抽象类,从父类继承过来的抽象方法可以不重写/覆盖/实现。
abstract class Bird extends Animal{
}