javaoop 之 abstract关键字

定义:
用来描述抽象事物
例如动物类 里面的吃 每个动物有不同的吃法,因此描述不清只能设置为抽象类 。因此我们只需要继承动物类自己去负责完成自己该怎么吃吃什么就行 所以是必须被继承的因为没有动物不吃
特点:

  1. 抽象方法跟普通方法是有区别的,它没有自己的主体
    2.抽象方法不能用private修饰 因为抽象方法必须被子类实现(重写)而private外界无法访问因此 会产生矛盾
  2. 抽象方法无法用static修饰 因为static修饰的方法会直接被对象调用 但是本身抽象类是没有方法体的因此即使调用也无任何意义;
  3. 抽象类无法被实例化
  4. 有自己的构造方法
  5. 抽象类无法被final关键字修饰 因为final关键字无法被继承 但是abstract类一定要有继承的类====矛盾
    抽象成员方法的特点 第7条
  6. 如果一个类中至少有一个抽象方法 那么这个类一定是抽象类 反之 如果这个类如果是抽象类但是可以没有抽象方法 这样做的目的是为了这个类(含有一个抽象方法的类)无法被实例化。
  7. 如果一个类继承了一个抽象类那么,他必须重写这个抽象类的全部抽象方法(可以不复写 但是条件是 这个子类也必须是抽象方法 但是这样做无意义因为此时子类也无法实例化 )(要么是一个抽象类 要么重写所有抽象方法)
    a) 为什么抽象方法无法实例化但是却有构造器
    既然它也属于继承的范畴,那么当子类创建对象时必然要优先初始化父类的属性变量和实例方法,不然子类怎么继承和调用呢?而它本身不能实例化,因为它本身就是不确定的一个对象,如果它能被实例化,那么我们通过它的对象来调用它本身的抽象方法是不是有问题。所以不能实例化有在情理之中。因此大家只要记住这个规定就行。
    抽象类成员变量的特点
    可以有成员变量,也可以有成员常量;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值