Java之抽象abstract

一:抽象的定义

  • 当父类的某些方法不确定时,可以用abstract关键字来修饰该方法,即抽象方法,用abstract来修饰该类,即抽象类
  • 抽象类将事物的共性的东西提取出来,由子类继承去实现,代码易扩展、易维护

二:抽象类和抽象方法的格式

  • 抽象类的表达方式
//抽象类
abstract class 类名{
}
  • 抽象方法的表达方式
//抽象方法,不能有方法主体
abstract 返回类型 方法名();

三:代码演示

父类:Vehicle

package chapter6;

public abstract class Vehicle {

    public abstract void run();

    public void stop(){
        System.out.println("停在路上");
    }
}

子类1:Bicycle,继承父类Vehicle

package chapter6;

public class Bicycle extends Vehicle{

    @Override
    public void run() {
        System.out.println("Bicycle is running.人工驱动");
    }
}

子类2:Automobile,继承父类Vehicle

package chapter6;

public class Automobile extends Vehicle{
    @Override
    public void run() {
        System.out.println("Automobile is run ,汽油驱动");
    }
}

运行类:AbstractDemo

package chapter6;

public class AbstractDemo {

    public static void main(String[] args) {

        Vehicle bike = new Bicycle();
        bike.run();
        bike.stop();

        Vehicle automible = new Automobile();
        automible.run();
        automible.stop();
    }
}
/**运行结果:
Bicycle is running.人工驱动
停在路上
Automobile is run ,汽油驱动
停在路上
*/

四:总结

  • 抽象类的特点

    • 抽象类不能被实例化,因为抽象类中方法未具体化,这是一种不完整的类,所以不能直接实例化,编译无法通过
    • 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类
    • 如果一个抽象类中可以没有抽象方法,这样做的目的是为了此类不能被实例化
    • 抽象类的子类必须给出抽象类中的抽象方法的具体实现,否则子类也是抽象类,需要用abstract声明
    • 抽象类不能使用final关键字修饰,因为final修饰的类是无法被继承
  • 抽象方法的特点

    • 抽象类中的抽象方法只是声明,不包含方法体
    • 抽象方法不能用private修饰,因为抽象方法必须被子类实现(覆写),而private权限对于子类来说是不能访问的
    • 一个类继承了一个抽象类,那么它必须全部覆写抽象类中的抽象方法当然也可以不全部覆写,如果不覆写全部抽象方法则这个子类也必须是抽象类
    • 构造方法,类方法(即static 修饰的方法)不能声明为抽象方法
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值