Java修饰符 --- abstract

本文详细介绍了Java中抽象类(abstract class)和抽象方法的使用,包括它们的定义、特点以及与普通类的区别。重点阐述了abstract关键字的限制,如不能与final、private、static一起使用的原因。同时,讨论了抽象类的子类如何处理抽象方法,强调非抽象子类必须实现抽象方法。
摘要由CSDN通过智能技术生成

使用抽象类的好处:接口和实现分离

一、表明类或者成员方法具有抽象属性

  • abstract 修饰的类为抽象类,如:

    abstract class A {
    }
    
  • abstract 修饰的方法为抽象方法,如:

    abstract int getId();
    

    对于 abstract 方法只能声明不能实现(因为没有方法体),并且只能是实例方法,不能是类方法

二、抽象类(abstract 类)和普通类的区别

  • 抽象类中可以有抽象方法,也可以有普通方法

    普通方法不能有抽象法

  • 普通类可以通过new创建,抽象类不能,所以,想要创建该对象,需要非抽象类子类重写父类的抽象方法,并且实现

三、修饰符矛盾(final、private、static)

  • abstract 不能和 final、private、static 一起修饰使用
  • 原因:abstract 修饰的方法是必须在子类中实现(覆盖),才能以多态方式调用,而 final 修饰父类,子类不能实现;private 修饰,子类不能继承;static 修饰虽然可以实现,但是调用时会先调用编译时类型的方法,也就是父类的 static 方法,结果发现是抽象方法,不能调用,所以,abstract 和 final、private、static不能一起用

四、abstract 类的子类

  • 子类是非 abstract 类,必须重写父类的 abstract 方法,给出方法体
  • 子类是 abstract 类,可以重写父类的 abstract 方法,也可以继承父类的 abstract 方法(暂时不实现abstract方法)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值