java基础之抽象方法和抽象类

抽象方法:

1.用 abstract修饰的方法 为抽象方法.
2.用 abstract修饰的方法 必须存在于抽象类中!
3.抽象方法不能有方法体(代码块的内容)!
4.抽象方法是需要让子类进行重写实现的!

抽象类:

1.用abstract修饰的类 为抽象类.
2.抽象类可以包含抽象方法,和普通方法.
3.设计为抽象类 那么一定要有子类继承的!
4.子类必须实现重写抽象父类中的所有抽象方法!
5.抽象类是不能被创建对象!
6.抽象类的意义

封装共有属性和行为 -----代码复用
为子类提供向上造型 -----调父执行子
可以包含抽象方法,由具体的子类实现抽象方法书写自己的代码逻辑
子类行为具体逻辑不同,但是入口是一致的!

//        SeaObject s = new SeaObject();抽象类不能被创建对象
         SeaObject s= new Battleship();//可以向上造型!
        SeaObject[] s2 = new SeaObject[3];//创建数组可以!

疑问:

1)抽象方法还有意义吗,为什么不直接用普通方法? 答:遵循面向对象的设计原则,其次可以约束子类必须实现父类的抽象方法!
因为如果设计为普通方法,子类可重写也可以不重写,但是一般如果父类的功能子类不受用,是需要强制约束子类重写的!
2)子类既然都重写了,那么父类的抽象方法不能删的原因? 答:存在的意义就是为了实现向上造型后,父类可以提供一个统一的入口.可以统一管理子类的行为,具体执行时 执行各个子类不同的实现逻辑.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值