IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java基础 -- 面向对象特性 -> 正文阅读

[Java知识库]Java基础 -- 面向对象特性


🍕前面的话🥞

今天状态不是很好,那么就想着把前面的 Java 基础拿出来翻看一下。顺便复习一下。因此,也就写下了这篇文章。当然是由感而发啊。如果有哪些不足的地方还请小伙伴们细细指出嗷。其实现在大部分的人都是只注重编程技巧或怎样编程上,当然一些基础概念也是十分的重要的。正所谓 基础不牢,地动山摇。在这一片文章中,我将从这两个方面去进行阐述喽。

👩?💻博客主页:崇尚学技术的科班人的博客主页
?欢迎关注🖱点赞🎀收藏?留言?
🔮本文由 崇尚学技术的科班人 原创,csdn首发!
😘系列专栏:java
🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦

在这里插入图片描述

🥧面向对象特性

其实当人们谈论到 Java 的时候,大多数都会直接谈论到它是一门面向对象的编程语言。那么如果我问一个问题 Java 面向对象的三大特性是什么?。我相信大家都能够答出来,那么就是 封装、继承、多态。但是要你去详细介绍一下这三个特性的时候,又有多少人能够很快而有准确的回答出来呢?所以在这个飞速发展的时代,在这个快餐式学习横行的时代,我们有时候需要慢下来、静下来去沉淀一下了,去慢慢地、踏实地学习一下了。

那么下面我将从代码和概念两个角度进行深度讲解 Java 的面向对象特性。

🍦代码例子

  • Coffee抽象类
public abstract class Coffee {

    public abstract String getName();

    // 1. 加糖
    public void addSugar(){
        System.out.println("加糖");
    }

    // 2. 加奶
    public void addMilk(){
        System.out.println("加奶");
    }
}

  • LatteCoffee子类
public class LatteCoffee extends Coffee {
    @Override
    public String getName() {
        return "拿铁咖啡";
    }
}

想必大家对这两个代码例子应该已经熟悉的不要再熟悉了吧,这个 咖啡 作为抽象父类,其中有一个获取对应对象的抽象方法 – getName()

  • 为什么要设计这么一个抽象方法呢?

其实作为一个抽象类呀,就比如说上面这个 咖啡 抽象类,它只是 咖啡 的一个抽象总称。所以说,咖啡的话那么就会有很多种类的咖啡。比如说,美式咖啡、拿铁咖啡等。那么我们需要根据它的名字进行判别,就通过这么一个抽象方法,当字类进行继承对应的父类的时候,那么需要对其进行重写。那么就实现了不同咖啡的不同标识了。


其上,这两段代码就涉及到了面向对象的两大特性:继承和多态。上面这样介绍一下,方便一下没有 Java 基础的同学也能看懂,如果有一定 Java 的同学的话,那么就复习一下喽。

虽然例子很简单,但是运用到了其两大重要概念。下面我将从三个特性展开详细介绍。

🍭面向对象和面向过程的区别?

我们都知道 c 语言的话,它是面向过程的;而 Java 语言的话,它是面向对象的。那么它们两者的区别是什么呢?

面向过程

  • 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。

  • 缺点:没有面向对象易维护、易复用、易扩展。

面向对象

  • 优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护。

  • 缺点:性能比面向过程低。

🧀 封装

如果在面试中,你被面试官问到了 你来详细介绍一下封装是什么意思?。你会如何回答呢?可能会有一些小伙伴会说,那不就是将一段代码进行封装成一个函数或类吗?

如果你是这样回答的话,其实 get 到了一点边了,但是你就像是一个没有学过 Java 语言的人一样,换句话说就是回答的不够专业。我这里就给出标答来了。

  • 封装:封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏

🍦继承

还是这么说呀,如果叫你详细的介绍一下肯定都是描述不太准确的。那么这就是基础不太扎实了。肯定有很多人会这样描述这个概念,那不就是 子类继承父类呀这回答的也太不专业了吧,一看就是圈外人

标答:

  • 继承:继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。

🥡多态

我这里就不多加赘述了。

标答:

  • 多态性:它是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及其各个子类中具有不同的含义。

其实也就是如上面我所举出的例子来说的话,也就是咖啡父类定义了一个抽象方法,他定义的是一个规范,如果子类继承它的话,不同的子类将会表现出不同的行为,那么就是不同的咖啡品种会有不同的名字。这也就是说子类需要重写父类的相关方法进行表现出不同的属性和行为。

  • 多态的三要素
  1. 继承:在多态中必须存在有继承关系的子类和父类。
  2. 重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。
  3. 向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才既能可以调用父类的方法,又能调用子类的方法。

当然上面介绍到的重写也只是多态实现的一种方式,多态的实现方式介绍如下:

  • 重写:重写发生在子类与父类之间, 重写方法返回值和形参都不能改变,与方法返回值和访问修饰符无关,即重载的方法不能根据返回类型进行区分。即外壳不变,核心重写!
  • 重载:重载 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。最常用的地方就是构造器的重载。

编写不易,如果你感觉对你有帮助的话,请你三连支持,后面的文章会一点点更新。

在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-05-12 16:20:27  更:2022-05-12 16:20:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:11:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码