博客
关于我
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 CPU使用率过高的一次处理经历
查看>>
Multisim中555定时器使用技巧
查看>>
MySQL CRUD 数据表基础操作实战
查看>>
multisim变压器反馈式_穿过隔离栅供电:认识隔离式直流/ 直流偏置电源
查看>>
mysql csv import meets charset
查看>>
multivariate_normal TypeError: ufunc ‘add‘ output (typecode ‘O‘) could not be coerced to provided……
查看>>
MySQL DBA 数据库优化策略
查看>>
multi_index_container
查看>>
MySQL DBA 进阶知识详解
查看>>
Mura CMS processAsyncObject SQL注入漏洞复现(CVE-2024-32640)
查看>>
Mysql DBA 高级运维学习之路-DQL语句之select知识讲解
查看>>
mysql deadlock found when trying to get lock暴力解决
查看>>
MuseTalk如何生成高质量视频(使用技巧)
查看>>
mutiplemap 总结
查看>>
MySQL DELETE 表别名问题
查看>>
MySQL Error Handling in Stored Procedures---转载
查看>>
MVC 区域功能
查看>>
MySQL FEDERATED 提示
查看>>
mysql generic安装_MySQL 5.6 Generic Binary安装与配置_MySQL
查看>>
Mysql group by
查看>>