java继承

对继承的理解,子类继承父类就可以把父类的属性和方法当成自己的来用。除了私有化方法以外。
这个怎么理解呢?
继承之后不用管父类,就把父类的属性和方法完全当成自己的就行了。
比如你给父类的一个属性赋值,然后调用父类的一个方法,这个方法里面打印了这个被赋值后的属性。那么打印结构就是赋值后的值,而不是初始化的值。

另外,两个字类同时继承一个父类。其中那么两个子类是公用一个父类的属性和方法吗?当然不是的,每个子类单独享有父类的属性,你调用一个子类的对象给父类属性赋值,这里只会影响到这个对象的父类属性的值。而在另一个子类对象中,这个值依然是初始化的值。

当然,父类的属性是static的话,那么两个子类对象都共享一个属性。

为什么要使用继承?
提高复用性,继承一个类拥有它的属性和方法。可以把很多类的共同特征提取出来,做成一个类。然后其他类继承他。这样就可以避免写很多重复的代码。
那么继承的父类的方法并不一定是完全符合我们想要的结果的,不符合结果你继承他有什么用?
那这里有了一个覆写的概念,重写就是子类把父类的方法重新写一个,变成符合自己的东西。然后程序执行的时候,自然是执行子类的,而不是父类的。

super.fly(); super指的是父类,super.fly();指向的是父类的方法。继承时默认显示出这个。如果取消掉的话,就不会执行父类的方法了。

覆写的问题,子类覆写父类的方法,需要注意,方法名义一样,参数一样,返回值类型一样或者小于父类,访问权限必须等于或者大于父类的。
当然如果父类的方法时private 的那么覆写不了,因为无法访问嘛。
这样的话只能使用super关键字,调用父类方法。

父类static方法,不能被覆写。因为父类的方法是static方法,这是类共有的方法。而覆写的目的是把这个方法变成自己独有的方法,共有的怎么能变成独有的呢?

方法的重载?
这个是针对一个类而言的,不是子父类的。重载说的是参数不一致,方法就不是一个方法了。而重写还是原来的那个方法,只是里面的功能变了。

另外的话,当你new一个子类对象的时候,默认会先调用父类的无参构造,实例化父类对象。

子父类和

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值