目录
抽象类
(如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类)
抽象类语法:被“abstract”修饰的类
//抽象类
public abstract class Shape{
//抽象方法
abstract public void draw();
}
抽象方法:被“abstract”修饰的方法
(抽象类也是类,内部包含普通方法和属性,甚至是构造方法)
抽象类特性:
1.抽象类使用abstract修饰
2.抽象类不能被实例化
3.在抽象类中,可以有抽象方法,或者非抽象方法
4.只要包含抽象方法,这个类必须为抽象类
5.当一个普通类继承了这个抽象类,必须重写抽象类当中的抽象方法
6.抽象类存在的最大的意义就是被继承
7.抽象方法不能被private,final,static修饰(必须满足重写规则)
8.当一个子类没有重写抽象的父类方法,可以把当前子类变为abstract修饰
9.抽象类不一定包含抽象方法
10.抽象类可以有构造方法,供子类创建对象时,初始化父类成员变量
抽象类本身不能被实例化
,
要想使用
,
只能创建该抽象类的子类
.
然后让子类重写抽象类中的抽象方法
.
使用抽象类的场景就如上面的代码
,
实际工作不应该由父类完成
,
而应由子类完成
.
那么此时如果不小心误用成父类
了
,
使用普通类编译器是不会报错的
.
但是父类是抽象类就会在实例化的时候提示错误
,
让我们尽早发现问题