当父类的一些方法不确定时,可以永固abstract关键字来修饰该方法,这个方法就是抽象方法,用abstract来修饰该类就是抽象类
抽象类介绍:
1.用abstract 关键字来修饰一个类时,这个类就叫抽象类
abstract - 访问修饰符
2.用abstract 关键字来修饰一个方法时,这个方法叫抽象方法
abstract - 访问修饰符 但没有方法体{}
3.抽象类的价值更多作用是在于设计,是设计者设计好后,让子类继承并实现抽象类()
抽象类使用的注意事项:
1.抽象类不能被实例化
2.抽象类不一定包含abstract方法,也就是说,抽象类可以没有
abstract方法
public abstract class A{
public void a(){
System.out.println("a");
}
}
3.一旦类包含了 abstract方法,这个类则必须声明abstract,无需编写方法体
public abstract class A{
public abstract void a();
}
4.abstract 只能修饰类和方法,不能修饰属性和其他
public abstract class A{
public abstract String str = "null";
//该属性不能使用 abstract 来修饰
}
5.抽象类可以有任意成员,比如非抽象方法,构造器,静态属性等等
注:抽象类的本质还是类,所以可以有类的各种成员
public abstract class A{
public abstract void a();
private String name;
public void b(){
System.out.println("abc");
}
public A(String name){
this.name = name;
}
}
6.抽象方法不能有主体,基本能实现
public abstract void a(){} -[不能存在{} 直接分号结尾即可];
7.如果一个类继承了抽象类,则它必须实现抽象类的所有抽象方法,除非它自己也声明为abstract类
public abstract class A{
public
}
1.
public class B extends A{
@Override
public void a(){
//重写父类的抽象a方法
}
}
2.
public abstract B extends A{
public abstract a();
}
8.抽象方法不能使用 private,final 和 static 修饰,因为这些关键字都是重写相违背的