java的继承原理与实现方法详解

所属分类: 软件编程 / java 阅读数: 38
收藏 0 赞 0 分享

本文实例讲述了java的继承原理与实现方法。分享给大家供大家参考,具体如下:

继承

1.java中是单继承的。每个子类只有一个父类。

语法:子类 extends 父类

2.在java中,即使没有声明父类,也有一个隐含的父类,就是Object类

3.在子类中可以使用super来调用父类的方法

4.继承中的构造方法问题

在new一个子类实例的过程中,会优先自动调用父类默认的无参数构造方法,然后再调用子类的构造方法。如果父类没有默认的构造方法,只有带参数的构造方法,此时就会出错。

除了由jvm自动调用父类默认的构造方法外,子类还可以可以通过super方法调用父类的构造方法,尤其是当父类没有默认的构造方法,只有带参数的构造方法的情况下,那么在子类中必须使用super的方式调用父类带参数的构造方法。

5.动态绑定和静态绑定

java的动态绑定和静态绑定

6.父子类型转换

向上类型转换:父类型的引用指向子类型的实例

Child c = new Child();
Parent p = c;

向下类型转换:在java中使用强制转换的方式实现向下类型转换,即父类型的变量可以赋值给子类型的变量,但是不一定每次向下类型转换都会成功,这取决于这个父类变量的动态类型(即引用的对象类型)是不是这个子类或者是这个子类的子类。

public class Bind{
    public static void main(String[] args) {
        //成功
        Parent p = new Child();
        Child c = (Child)p;
        //失败
        Parent p1 = new Parent();
        Child c1 = (Child)p1;
    }
}

结果:

Exception in thread "main" parent构造函数
child构造函数
parent构造函数
java.lang.ClassCastException: practice.Parent cannot be cast to practice.Child
        at practice.Bind.main(Bind.java:13)

7.可见性重写

重写方法时,一般并不会修改方法的可见性。但是如果修改方法可见性的时候,那么重写时,子类的方法不能降低父类方法的可见性:如果父类中方法为public的,那么子类中的方法也必须为public的;如果父类中的方法为protected的,那么子类中的方法可以为protected,也可以为public的。

这是因为在java中继承是“is-a”的关系,即子类对象也属于父类。子类必须支持父类所有对外的行为。

8.使用final修饰的方式避免继承

final修饰类,表示该类不能被继承;final修饰非final中的方法,表示该方法不能在子类中被重写。

9.继承的优劣势

好处:实现代码复用,公共属性和方法放在父类中,子类只需要关注子类特有的就可以了。

不同子类的对象可以更方便地被统一处理(这里也有多态特性)。

缺点:继承破坏封装

如何避免使用继承?

(1)使用final关键字

(2)优先使用组合而非继承

(3)使用接口

更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

更多精彩内容其他人还在看

java实现背单词程序

这篇文章主要为大家详细介绍了java实现背单词程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

java实现单词查询小程序

这篇文章主要为大家详细介绍了java实现单词查询小程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Java程序开发环境配置图文教程

这篇文章主要为大家详细介绍了Java程序开发环境配置图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

详解ssh框架原理及流程

在本文中小编给大家整理的是关于ssh框架原理及流程的相关知识点内容,有此需要的朋友们可以学习下。
收藏 0 赞 0 分享

Java实现弹窗效果的基本操作

这篇文章主要为大家详细介绍了Java实现弹窗效果的基本操作,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

详解springmvc常用5种注解

在本篇里我们给大家总结了关于springmvc常用5种注解相关知识点以及实例代码,需要的朋友们参考下。
收藏 0 赞 0 分享

Java实现弹窗效果的基本操作(2)

这篇文章主要为大家详细介绍了Java实现弹窗效果的基本操作第二篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Spring Boot假死诊断实战记录

这篇文章主要给大家介绍了关于Spring Boot假死诊断的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

Java计时新姿势StopWatch详解

这篇文章主要介绍了Java计时新姿势StopWatch,最近公司来了个大佬,从他那里学到不少东西,其中一个就是计时的新姿势「StopWatch」,需要的朋友可以参考下
收藏 0 赞 0 分享

java实现点击按钮弹出新窗体功能

这篇文章主要为大家详细介绍了java实现点击按钮弹出新窗体功能,旧窗体不进行操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享
查看更多