目录
17.6.3如果一个类中都是普通方法,为啥还要被声明成抽象类呢?
16.异常处理
当程序中遇到了异常,通常有两种处理方式:捕获或者向上抛出
当一个方法抛出异常,调用位置可以不做处理继续向上抛出,也可以捕获处理异常
1) 捕获方式:
try{
需要捕获的代码
}catch(异常类型 异常名){
处理方案
}
2) 抛出方式:
在会发生异常的方法上添加代码:throws 异常类型
例如:public static void main(String[] args) throws Exception{}
17.抽象类
17.1概念
Java中可以定义被abstract关键字修饰的方法,这种方法只有声明,没有方法体,叫做抽象方法
Java中可以定义被abstract关键字修饰的类,被abstract关键字修饰的类叫做抽象类
如果一个类含有抽象方法,那么它一定是抽象类
抽象类中的方法实现交给子类来完成
17.2抽象方法的格式
权限修饰符 abstract 返回值类型 方法名(参数列表);
17.3特点
1.abstract可以修饰方法或者类
2.被abstract修饰的类叫做抽象类,被abstract修饰的方法叫做抽象方法
3.抽象类中可以没有抽象方法
4.如果类中有抽象方法,那么这个类必须定义为一个抽象类
5.子类继承了抽象类以后,要么还是一个抽象类,要么就把父类的所有方法重写
6.多用于多态中
7.抽象类不可以被实例化
17.4注
@Override //注解,相当于标记,标记这是一个重写的方法
public void fly() {
System.out.println("我把我爸的债还清啦,我家猪终于能飞了");
}
17.5抽象类构造函数
抽象类中的构造函数通常在子类对象实例化中使用
* 1.抽象类中可以有构造方法
* 2.父类的构造方法要优先于子类执行
* 3.抽象类不可以创建对象(实例化)
* 4.抽象类中存在的构造方法不是为了创建本类对象时调用
* 而是为了创建子类对象时使用
17.6抽象类成员变量
17.6.1抽象类可以有成员变量
17.6.2抽象类中可以有普通方法
17.6.3如果一个类中都是普通方法,为啥还要被声明成抽象类呢?
* 原因:抽象类不可以创建对象
* 如果不想让外界创建本类对象,可以把普通类声明成抽象类
17.6.4当一个类继承了父类,并且父类是抽象父类时
* 子类需要重写(实现)父类中的所有抽象方法或者把自己变成抽象子类