`

Java类的继承概论

    博客分类:
  • Java
阅读更多
Java中的继承与生活中的很相似,但是又有他们之间的不同。
Java中继承代表的是一个新的类(子类)可以使用当前类(父类)里面的部分方法和属性,而在这里面又有一些需要我们注意的地方:
1.子类和父类在同意包下的时候,可继承的方法属性为public and protected
2.而他们不在统一包中时,只能继承public的
而且需要特别说明的是,构造函数在以上两种情况下是都不可以继承的。
继承其实类似于我们生活中的遗传关系,子代可以继承父辈的财产(protected)和物品(public),当然这是理想状况(同一包);
当子代和父辈不是直接血缘关系(继父母)时(不在同一包),那么只能继承物品(public),而无法继承(部分)财产(protected)(这里当然不绝对)。
这里的物品其实就相当于部分财产~

父辈有父辈的习惯,子代有子代的习惯,有的是耳濡目染继承下来的,那么就是父辈和子代所共有的,有的是子代没有学的,子代在做这些事情的时候有自己的处理方式,那么做同一件事的方法两代人直接按就会产生不同--
这在我们Java中就是所谓的方法的重写。
重写时也有需要我们注意的事项:
方法之间的名字,参数个数类型以及返回值类型都必须完全相同!
允许不同的地方就是访问修饰符,还有就是子类方法的具体内容。
对于方法修饰符,范围子类必须大于或等于父类的,即:
public -->  protected   -->  private.

自动转型也是在继承的基础上所产生的,就是说子类可以自动转换为父类的成员
对于自动转型,我们可以这样理解:
一个大学老师,可以教大学生,也可以教初中生,高中生,小学生
那么。对于这个教学的方法我们就可以只写一次。然后在使用时进行相应的自动转换一达到教学各种不同阶层学生的目地。
对于我们来说,使用自动转型,那么就只能调用父类中已经定义过的方法。
对于这个转型,我们有2种方法:
          一:
父类名  父类对象名  =  new 子类构造函数();

二:
父类名  父类对象名  =  new 子类构造函数();
&&
子类名   子类对象名  =  new 子类构造函数();

public 返回值类型   方法名(父类类名   父类对象名){
父类对象名.方法名();
}

方法名(父类对象名);
方法名(子类对象名);
但是,自动转型也是有明显缺点的:
如果使用自动转型,则无法调用子类的独有方法。
因为计算机比较笨,它只能按照固定的已经设定好的方式去执行,Java在编译的时候,是根据对象名的类型去编译程序,这个时候在子类中,是找不到
相应的方法的,所以编译出错了。

现实生活中,我们对于一件事会有很多不同的方法去实现。
比如:做菜我们可以选择煎炒烹炸,上班我们可以选择公交地铁,就连睡觉我们也可以选择侧卧仰卧,这也就是我们所说的多态。
Java中,多态是由方法重载,继承,方法重写,自动转型等引起的一个综合技术点。
也就是说,我们可以通过由继承,重载,自动转型实现各种方法的目的,也就是实现多态。

由继承和继承引申出的东西我们就介绍完啦!
其实,继承的作用是非常大的,通过这些继承的关系,我们可以较少编成的工作量,提高代码的利用率,程序的扩展性能,更减少了形同代码串的出现,降低了这方面的冗余,从而在很大程度上提升我们的编程效率。
0
3
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

Global site tag (gtag.js) - Google Analytics