Java进阶之抽象类

目录

一、什么是抽象类?

二、举个例子

三、注意事项

四、abstract关键字与其他关键字之间存在的冲突


一、什么是抽象类?

        特殊的父类——特殊之处在于其内部允许编写抽象方法。抽象方法是指当我们将共性的方法,抽象到父类之后,如果该方法在父类中无法具体描述,且这个方法还是子类必须要有的方法,就可以将其设计为抽象方法。

二、举个例子

// 定义抽象类Human
//Human类是不能直接实例化的,只能通过继承它的子类进行实例化。
abstract class Human {
    // 抽象方法,该方法在父类中无法具体描述,且是子类必须要有的方法
    abstract void look();
    }
    // 非抽象方法
    void eat() {
        System.out.println("人类会吃饭");
    }
}

// boy是继承了Human的子类,必须实现look()方法
class boy extends Human {
    // 实现抽象方法
    void look() {
        System.out.println("男生是帅气的");
    // 重写非抽象方法
    void eat() {
        System.out.println("男生会吃饭");
    }
}
//在Main类的main()方法中,创建了一个boy对象,分别调用了它的look()和eat()方法。
public class Main {
    public static void main(String[] args) {
        Human boy = new Human();
        boy.look();  
        boy.eat();      
    }
}

三、注意事项

  • 抽象类不能实例化,若抽象类允许创建对象,就看调用内部没有方法体的抽象方法
  • 抽象类存在构造方法,可以通过super让子类进行访问
  • 抽象类存在普通方法,可以让子类继承使用
  • 抽象类的子类,或者是抽象类,或者重写抽象类中的所有抽象方法

四、abstract关键字与其他关键字之间存在的冲突

  • private、final修饰的方法子类不能重写,而abstract修饰的方法,强制要求子类重写
  • static修饰的方法可以类名调用,而类名调用抽象方法则毫无意义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿巴阿巴啊啊啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值