java 继承详解_Java继承详解

1.什么是继承?

把若干个类的共同属性和方法提取出来,放到一个类中。利用extends关键字实现子类继承父类,子类继承父类的属性和方法,这就是继承。

2.使用继承的好处?

提高代码的复用性;

为多态打基础,有继承才会有多态,没有继承就没有多态。

3.使用继承的注意事项

java只支持单继承;

子类继承父类属性和方法,如果有方法重写了,有属性同名,优先使用子类的属性和方法;

子类对象的创建,要先看父类是怎么创建的;

看下面的代码

[Java] 纯文本查看 复制代码

运行结果

*************************

#########################

在上面的代码中,class B 继承了 class A ,创建子类对象A的时候,调用构造方法会首先调用父类B的构造方法(默认调用无参构造方法),然后再调用子类的构造方法,既得到上面的运行结果。子类继承父类的属性和方法,但不继承构造方法,只能调用父类的构造方法,如果父类的属性是private修饰的(私有的),就只能通过get/set方法调用和修改。super调用父类构造时,一定要放在构造方法的首行上。跟this语法类似,super和this不能再构造方法中同时出现。看如下代码定义一个父类Person,抽取出来name, age, gender属性,还有eat(),sleep()方法。

[Java] 纯文本查看 复制代码

定义一个子类Student,继承了父类Person,有自己的属性score,重写了父类的方法toString()和sleep()。

[Java] 纯文本查看 复制代码

定义一个测试类进行测试

[Java] 纯文本查看 复制代码

首先是学生调用自己的方法score(),得到第一个结果;然后调用学生的eat()方法,首先检查自己没有eat()方法,会从父类调用eat()方法,得到第二个结果;然后调用学生重写父类的sleep()方法,得到第三个结果;第四个是继承自父类的name属性给自己使用得到的结果;第五个i的值父类子类都有,但有限考虑子类自己的变量i,得到10.

总结:从上面的代码可以看出,

继承是可以继承父类所有的属性和方法给自己使用的;

在子类重写了父类的方法后就优先调用子类的方法;

属性(变量名)相同也是优先考虑子类的变量,父类私有属性也能继承,但是不能直接修改使用,只能通过get/set方法使用和修改;

构造方法只能调用,没有继承;

子类创建对象调用构造方法首先调用父类的构造方法,然后再调用子类的构造方法;

this和super地址值都是一样的,都指向子类。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值