博客
关于我
JAVA基础(一)继承、封装、多态
阅读量:772 次
发布时间:2019-03-24

本文共 1250 字,大约阅读时间需要 4 分钟。

继承

在编程中,继承是一种强大的机制,允许一个新类复用父类的方法和属性,同时可以自定义新增功能。这种特性使得代码的维护更加容易,减少了代码的耦合性。

构造器在继承关系中扮演着特殊角色。对于继承自父类的私有域,子类通常无法直接访问这些域。为了初始化子类实例,必须通过调用父类的构造器(即使用super()语句)。如果没有显式地调用父类构造器,编译器会自动调用父类的无参数默认构造器。但如果父类没有定义无参数的构造器,子类在这种情况下必须显式地调用父类的构造器,否则会导致编译错误。

在Java的多态机制中,一个类变量可以引用该类或其子类的实例,这种特性为多态提供了实现基础。在运行时,调用方法时会以动态绑定来确定实际执行哪个方法。如果子类定义了与父类方法签名匹配的方法,子类方法会被优先调用,这就体现了多态的强大特性。

Doughnut 类可能有一个私有的包装袋属性封包。子类 CroissantDoughnut 会在此基础上自定义一些额外功能。这意味着 CroissantDoughnut 实例可以访问并操作包装袋属性,而其他类则无法直接访问这些属性。

一只 Doughnut 实例的类型可能会被存储在一个运行时多态表中。在访问它的方法时,该表会根据当前对象的实际类型确定最合适的方法进行调用。这就是多态的实现机制所在。

最重要的一点是要记住,Java 的单继承机制意味着一个类只能有一个直接父类。同时,一个类可以实现多个接口,但不能继承多个类。这使得 Java 的继承关系更加清晰和可控。

在Java中,每个对象的创建过程遵循特定的初始化顺序:首先是父类的静态部分,静态初始化块,然后是子类的静态部分和静态初始化块,接着是父类的实例初始化块,父类的构造方法被调用,最后是子类的实例初始化块和子类的构造方法。这一顺序确保了对象的完整构建和正确初始化。

封装

封装是保护类的内部实现细节的重要机制。通过对属性和方法的访问级别进行控制,可以将对象的复杂实现细节封装起来,使外部代码仅能通过指定的接口进行操作。这有助于在不完全重构的情况下对类进行修改,同时保持对现有代码的兼容性。

通过封装,系统各部件之间的耦合度得到了有效降低,系统的模块化性和可维护性因此得到了提升。这种设计理念在软件开发中被广泛应用,以促进系统的更好的扩展性和可维护性。

多态

多态是指在运行时根据对象的实际类型决定如何执行某些行为,而不是在编译时固定。这使得同一个方法在不同的对象上表现出不同的行为,从而提供了高度的灵活性和可用性。在Java中,多态主要通过继承关系来实现。

给予一个 Bulkidl 类的对象一个 Serializable 对象,将其存储在包含 run Swiftjourney 类型的变量中。在运行时,vdr 会根据当前对象的实际类型来决定使用哪段代码来处理对象。当对象的实际类型是 A时,Execute的方法会根据A类的实现执行动作;当类型是B时,方法会根据B类的实现执行。这种动态的行为决定了多态的核心特性。

转载地址:http://ehhkk.baihongyu.com/

你可能感兴趣的文章
mysql中null和空字符串的区别与问题!
查看>>
MySQL中ON DUPLICATE KEY UPDATE的介绍与使用、批量更新、存在即更新不存在则插入
查看>>
MYSQL中TINYINT的取值范围
查看>>
MySQL中UPDATE语句的神奇技巧,让你操作数据库如虎添翼!
查看>>
Mysql中varchar类型数字排序不对踩坑记录
查看>>
MySQL中一条SQL语句到底是如何执行的呢?
查看>>
MySQL中你必须知道的10件事,1.5万字!
查看>>
MySQL中使用IN()查询到底走不走索引?
查看>>
Mysql中使用存储过程插入decimal和时间数据递增的模拟数据
查看>>
MySql中关于geometry类型的数据_空的时候如何插入处理_需用null_空字符串插入会报错_Cannot get geometry object from dat---MySql工作笔记003
查看>>
mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
查看>>
mysql中出现Unit mysql.service could not be found 的解决方法
查看>>
mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
查看>>
Mysql中各类锁的机制图文详细解析(全)
查看>>
MySQL中地理位置数据扩展geometry的使用心得
查看>>
Mysql中存储引擎简介、修改、查询、选择
查看>>
Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和处理程序的使用示例
查看>>
mysql中实现rownum,对结果进行排序
查看>>
mysql中对于数据库的基本操作
查看>>
Mysql中常用函数的使用示例
查看>>