Java中继承、this和super用法以及方法重载和方法重写

class Fu{ }
class Zi extends Fu{ }
耦合:类与类的关系,
内聚:自己完成某件事的能力
1、 Java中只支持单继承,不支持多继承。有些语言可以实现多继承,格式:
  class Zi extends Fu ,Mu{ }在java中是错误的用法。
2、 java中可以实现多层继承,如父继承爷爷,儿子继承父亲。
3、 注意事项:
  A、 子类只能继承父类非私有的成员变量和方法。、
  B、 子类不能继承父类的构造方法,但是可以通过super关键字访问父类的构造方法。
  C、 不要为了部分功能呢而使用继承。
4、 继承体现一种关系“is a” 如:学生、老师都可以继承人,都可以说他们是人。
5、
A、继承中成员变量的关系:子类方法中和父类方法中成员变量名称一样时采用就近原则。
  a如果在子类方法的局部范围找,有就用。
  b在子类的成员范围找,有就用
  c在父类的成员范围中找,有就用,
  如果上面三个都没有则报错。多层父类也是同理。
B、继承中构造方法的关系,
  子类中所有的构造方法都会默认访问父类中的无参构造方法,子类每一个构造方法第一条语句默认都是super(), 注意这里的第一条语句,代表着先输出父类的构造方法。
  为什么? 因为子类会继承父类中的数据,可能会使用父类的数据,所以子类初始化之前一定要先初始化父类的数据。
  如果父类中没有无参构造方法(当写一个有参构造方法,程序将不会默认再给出无参构造方法)程序会报错。
  解决方法:
    a 在父类中添加无参构造方法。
    b在子类构造方法中使用super关键字去显示调用父类的带参构造方法。
    c 子类中有一个访问父类带参构造方法,并且其他子类通过this调用此构造方法
C、继承中的成员方法关系
  如果方法名字一样。
    a先找子类中的方法
    b再找父类的方法
6、 this和super
  this:代表当前类对象的引用,
  super:代表父类存储空间标识(可以认为是父类的引用,通过其可以访问父类成员)必须出现在第一条语句上。
  A、调用成员变量
    this.成员变量,调用本类的成员变量;
    super.成员变量,调用父类中的成员变量。
  B、调用构造方法
    this(本类构造方法中的参数) 调用本类的构造方法
    super(父类中的构造方法的参数)调用父类的构造方法
  C、调用成员方法
    this.成员方法,调用本类的成员方法
    super.成员方法,调用父类的成员方法
7、 子父类初始化:
  子类初始化之前需要先对父类进行初始化。初始化时先运行父类和子类的静态代码块(静态代码块随着类的加载而加载),之后运行父类的构造代码块和构造方法,最后运行子类的构造代码块和构造方法。
  一个类的初始化:
    成员变量的初始化:默认初始化、显示初始化、构造方法初始化
9、
方法重写(override):当子类和父类的方法名,参数列表返回值类型都一样。
  可以在子类方法中使用super调用父类的方法,并在子类方法中加入新功能
  注意事项:
    a父类方法中的私有方法不能被重写,因为私有方法子类不能继承。
    b子类重写父类方法时,访问权限应设置的不低于父类权限。如public权限
    c父类静态方法子类也必须用静态方法重写
  所以方法重写时最好让子类和父类方法都一模一样。
方法重载(overload):同一类中方法名相同,参数列表不同,返回值类型随意。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值