abstract关键字

abstract----见字知意--抽象

1.为什么我们要使用这个关键字

列举一个生动的例子,我们创建一个动物类,要声明一个行走的方法,方法没有返回值,没有参数列表等,但是具体怎么实现呢?不同种动物有不同的行走方式,如果实现具体的方法,就会表明所有动物都只有一种行走方法。但如果是一个空的方法,当被别人调用时会很尴尬。

例如: Animal a =new Animal():
            a.move();

这时a就调用了一个空的方法,里面什么也没有。所以一定是不能实现的。我们就只声明方法,让子类去继承该类并且实现此方法。

方法声明格式:修饰符 返回值类型 方法名();

2.abstract的用途

1)abstract可以用来修饰类

例如:public abstract class Test{},Test此时就是抽象类。

1.1 抽象类与普通类的区别:
      1.抽象类必须使用abstract进行修饰
      2.抽象类不可以直接new对象,
      3.抽象类中可以编写抽象方法(但不是一定要有抽象方法),而普通类中不可以。

1.2 编写抽象类的目的:
     1.就是想让子类继承。
     2.子类继承父类,必须实现父类中所有抽象方法,否则就要把自己变成抽象类。

2)abstract可以用来修饰方法

例如:public abstract void walk();此时该方法就是抽象方法。

2.1如果类中有抽象方法,那么该类一定要被声明为抽象类。

3.注意事项---不合群的关键字

 3.1 private

abstract声明的方法是要被子类继承并且重写的,如果用private修饰,与相关问题冲突。

private修饰的方法可以被继承但是不可以被重写。

3.2 static

原因与以上相同,还有一点就是静态方法可以用类名直接调用,但是抽象方法没有具体的实现,调用无意义。

3.3final

final修饰的类不能被继承,声明的方法不能被重写,完全与abstract违背。

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值