java学习之抽象

为什么使用抽象

当父类知道子类需要什么方法,当不知道方法具体会如何实现时,允许父类只声明方法,而具体的功能实现交给子类完成。
例如:一个图形类为父类,此类中有打印图形面积的方法findArea(),但不同的图形会有不同的公式,此时父类中的findArea方法不需要写方法体。

抽象方法:

  • 访问控制修饰符 abstract 返回值类型 方法名(参数列表)
  • 子类继承抽象的父类后,要重写父类中所有的抽象方法才是一个具体类,若有一个或多个抽象类没有被重写,子类也必须得是一个抽象类

抽象类:

  • abstract class 类名{}

  • 抽象类: 有至少一个抽象方法的类,此类就必须得声明称抽象类

  • 可以没有抽象方法

  • 可以声明构造器(供子类继承用)

  • 但不能创建实例

注意:
abstract和 static,final,private不能同时用
我自己总结就是
abstract就是为了有自己特有的方法体,static是为了共享,所有的都用一样的。
final:修饰的类不能被继承,修饰的方法不能被重写,修饰的变量不能改值,abstract就是为了让人家改的,这俩就相斥。
private修饰符作用范围就是本类,所以父类中private修饰的方法子类不能访问,也就不能重写,就像一个父亲藏了私房钱,儿子根本不知道,虽然可以继承,但是没法使用。

abstract class Person(){
public abstract void say();
}

class son extends Person{
public void say(){
//重写say方法
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值