浅谈 Java 三大特性的意义|设计模式基础

简介: Java 的三大特性,继承、封装和多态大家应该都有所耳闻。本篇短文,浅谈下这几种特性的意义所在。

Java 的三大特性,继承、封装和多态大家应该都有所耳闻。本篇短文,浅谈下这几种特性的意义所在。

前置知识

  • 熟悉面向对象语言
  • 有使用过三大特性的经验

封装

关于封装,其最简单的用法就是,在一个类中把不需要给他人修改和展示的属性或者方法隐藏,其余则的公开。

其作用有几点:

  1. 防止被不熟悉该业务的同事修改,导致数据出错或者功能出错
  2. 让相关类的调用更加简单清晰,只让可调用的方法被暴露,可减小调用者的使用负担

继承

多数面向对象语言中都有继承的特性,这是一个 is-a 的特性。

继承的意义有以下几点:

  1. 解决代码复用问题
  2. 父类、子类与现下生活相似,有结构美

但是过度使用继承,也会使得代码可读性和可维护性变差。提倡 多组合,少继承

多态

多态是使用继承或者基于接口类,来使用子类替换父类

使用多态的几个意义有:

  1. 提高代码的复用性和可拓展性
  2. 隐藏代码功能的具体实现,让代码的调用更加方便
  3. 让代码更加解耦

多态是优雅的设计模式的基础,笔者在前面的封装框架一文中,也用到了多态的特性


抽象?

抽象是特性么?抽象在java中是一个特性,但是即使 java 不提供该特性,事实上我们调用函数,也是在实现该特性。

Java 中的抽象类 或者 接口类,都是包含抽象的特性的用法。使用抽象,能让我们不关注于代码本身,而是关注其功能。

为何标题打了 ? ,是抽象不包含于三大特性之中,但是抽象的的应用应该是在编码的全方面的。我们只去调用类的 public 方法可以看作是抽象,将类名显示一个泛化的功能也是抽象。

本文是 设计模式 的基础,了解设计模式不能空泛化,要知晓为什么,怎么做


相关文章
|
4天前
|
Java API Apache
JDK8到JDK24版本升级的新特性问题之在Java中,HttpURLConnection有什么局限性,如何解决
JDK8到JDK24版本升级的新特性问题之在Java中,HttpURLConnection有什么局限性,如何解决
|
3天前
|
自然语言处理 Java 应用服务中间件
Java 18 新特性解析
Java 18 新特性解析
|
3天前
|
设计模式 算法 Java
Java编程中的设计模式:简化复杂性的艺术
在Java的世界中,设计模式如同一位智慧的导师,指引着开发者们在复杂的编码迷宫中找到出口。本文将深入浅出地探讨几种常见的设计模式,通过实例演示如何在Java项目实践中运用这些模式,从而提升代码的可维护性和扩展性。无论你是新手还是资深开发者,这篇文章都将为你打开一扇通往高效编码的大门。
12 1
|
4天前
|
Oracle 安全 Java
JDK8到JDK28版本升级的新特性问题之在Java 15及以后的版本中,密封类和密封接口是怎么工作的
JDK8到JDK28版本升级的新特性问题之在Java 15及以后的版本中,密封类和密封接口是怎么工作的
|
4天前
|
Java API 开发者
JDK8到JDK17版本升级的新特性问题之SpringBoot选择JDK17作为最小支持的Java lts版本意味着什么
JDK8到JDK17版本升级的新特性问题之SpringBoot选择JDK17作为最小支持的Java lts版本意味着什么
JDK8到JDK17版本升级的新特性问题之SpringBoot选择JDK17作为最小支持的Java lts版本意味着什么
|
5天前
|
算法 关系型数据库 MySQL
一天五道Java面试题----第七天(mysql索引结构,各自的优劣--------->事务的基本特性和隔离级别)
这篇文章是关于MySQL的面试题总结,包括索引结构的优劣、索引设计原则、MySQL锁的类型、执行计划的解读以及事务的基本特性和隔离级别。
|
6天前
|
设计模式 安全 Java
|
9天前
|
设计模式 算法 Java
Java中的设计模式:探索与实践
【8月更文挑战第10天】在Java开发中,设计模式是提升代码可读性、可维护性和扩展性的关键所在。本文将深入探讨几种常见的设计模式及其在实际项目中的应用,帮助开发者更好地理解和运用这些模式,以编写出更高质量的代码。
25 2
|
3天前
|
设计模式 存储 Java
掌握Java设计模式的23种武器(全):深入解析与实战示例
掌握Java设计模式的23种武器(全):深入解析与实战示例
|
4天前
|
Java 编译器 开发者
JDK8到JDK23版本升级的新特性问题之编写一个简单的module-info.java文件,如何实现
JDK8到JDK23版本升级的新特性问题之编写一个简单的module-info.java文件,如何实现