【从C++到Java一周速成】章节10:封装、继承、方法的重写、多态

news2024/11/17 10:59:22

章节10:封装、继承、方法的重写、多态

  • 【1】封装
    • 1.高内聚,低耦合
    • 2.代码层面的体现
  • 【2】继承
  • 【3】方法的重写
  • 【4】多态

【1】封装

1.高内聚,低耦合

  • 高内聚:类的内部数据操作细节自己完成,不允许外部干涉;
  • 低耦合:仅对外暴露少量的方法用于使用。

隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提高系统的可拓展性、可维护性,提高程序的安全性,这就是封装性的设计思想。

2.代码层面的体现

以属性为案例进行封装(方法也可以封装):

  1. 权限修饰符:将属性私有化,被private修饰
  2. 提供public修饰的方法让别人访问使用
  3. 外界通过方法来使用属性是受到程序员的制约的,不能随意访问使用属性

ps:可以利用IDEA快捷键生成:alt+insert–>Getter and Setter

【2】继承

在这里插入图片描述
类是对对象的抽象,而继承是对类的抽象(从一些类抽取出相同的东西,抽象出一个父类)

Java中继承语法格式:子类extends父类

public class Student extends Person{
}

继承的好处;

  1. 提高了代码的复用性
  2. 便于代码的扩展
  3. 是多态使用的前提

【3】方法的重写

子类可以对父类的方法进行重写,与C++相同

方法的重写有严格的格式要求:
子类的方法名、参数列表(个数、类型、顺序)要完全跟父类一致

重写和重载的区别:

  • 重载:在同一个类中,方法名相同,形参列表不同,多个方法构成重载。
  • 重写:在不同类中,子类不想直接使用从父类继承的方法,而要进行重写。

【4】多态

不用根据不同动物写不同的重载方法play,只需要将Cat、Dog的父类Animal作为对象参数;
shout是Animal都有的行为,在Cat、Dog里重写shout方法;

public class Animal {
    public void shout(){
        System.out.println("shout");
    }
}
public class Cat extends Animal {
    public void shout() {
        System.out.println("miao");
    }
}
public class Dog extends Animal{
    public void shout(){
        System.out.println("wang");
    }
}
public class Girl {
    public void play(Animal a){
        a.shout();
    }
}
public class main {
    public static void main(String[] args) {
        Girl g=new Girl();
        Animal a=new Animal();
        Dog d=new Dog();
        Cat c=new Cat();
        g.play(a);
        g.play(c);
        g.play(d);
    }
}
  • 多态的三要素:继承、重写、父类引用指向子类对象
  • 多态的好处:提高代码扩展性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1688038.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何使用 CapSolver 扩展找到 Google reCAPTCHA 站点密钥?

网站安全性在当今至关重要,Google reCAPTCHA 作为防止垃圾邮件和滥用行为的前线防御系统起着关键作用。reCAPTCHA 站点密钥是确保网站交互由人类驱动的唯一标识符。了解如何找到这个密钥对于网站管理员和开发人员来说至关重要。 什么是 reCAPTCHA 站点密钥 reCAPT…

智能家居6 -- 配置 ini文件优化设备添加

不知道什么是ini的朋友可以先看这篇:一文带你入门ini格式-CSDN博客 准备 如下图: 在src 下面添加 ini.c 在inc 下面添加 ini.h 在 receive_interface.c 里面包含头文件,把之前添加的设备类注释掉 这时候就可以把相关设备的(.c .h)文件给删掉了 如下图: 修改/添…

CDH6.3.2集成Flink1.17

直接运行脚本即可,一键输出相关依赖包 运行步骤已给到文档 下载地址

更新评估班级、确定评价学生

场景: 义务阶段为何要进行分层分班,这一点大家都心知肚明。你说的答案是不是也和我的一样:为了实行分层教学。"人往高处走,水往低处流",每次确定分班后,总会有一些学生向上调整,当然也…

python2.x版本安装、安装pip

文章目录 一、安装python二、安装pip2.1、pip简介2.2、pip安装2.3、no such option: -e2.4、pip卸载2.5、pip扩展 本文讲解在windows系统装安装python2.7.13版本 一、安装python 1.下载安装包,官网链接地址:https://www.python.org/downloads/ 直接在…

Pytorch深度学习实践笔记4

🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:pytorch深度学习 🎀CSDN主页 发狂的小花 🌄人生秘诀:学习的本质就是极致重复! 视频来自【b站刘二大人】 1 反向传播 Back propaga…

机器视觉HALCON:2.HALCON的预备环境和数据结构

目录 下载基础语法HALCON的数据结构图像和数据类型区域的存储区域的存储连通区域 亚像素轮廓(XLD)亚像素轮廓介绍亚像素轮廓数据结构 数组数组的赋值与创建数组的存储与读取 字典字典介绍字典的创建和操作 句柄 下载 HALCON的官方网站 下载时需要注册登…

react antd中transfer穿梭框组件中清除搜索框内容

如图:需要清除search搜索框内容 antd的transfer穿梭框组件未提供入口修改input框的值。 2种方法修改。 1、直接操作dom元素设置值(不推荐) useEffect(() > {const searchInput document.querySelector(.ant-transfer-list-search input)…

Redis常用命令——String篇

前面我们讲解了一些 Redis 的全局命令(Redis常用基本全局命令)。所谓全局命令,就是可以匹配任意一个数据结构进行使用。但是不同的数据结构,也有自己的操作命令。本篇文章主要讲解的是 String 的操作命令,希望会对你有…

2024电工杯B题:大学生平衡膳食食谱的优化设计及评价

大学时代是学知识长身体的重要阶段,同时也是良好饮食习惯形成的重要时期。这一特 定年龄段的年轻人,不仅身体发育需要有充足的能量和各种营养素,而且繁重的脑力劳动和 较大量的体育锻炼也需要消耗大量的能源物质。大学生中饮食结构不合理以及…

在抖音怎么开店?抖音小店开店步骤详解!建议收藏!

大家好,我是电商小V 想在抖音上面开一家属于自己的抖音店铺去卖点商品赚取个商品的差价,那么开通抖音小店的步骤是什么呢?主要分为几步呢?关于这个问题咱们就来详细的说一下: 开店之前的准备工作,首先需要准…

核心四:线程的一生

4、核心四:线程的一生💟 4.1 New 已创建但还未启动的新线程。 我们new Thread之后,线程已经实现了一些准备工作。但没有运行run方法,因为没有使用start来开启线程。此时,线程处于New状态。 4.2 Runnable&#xff08…

Python模块、包和异常处理

大家好,在当今软件开发领域,Python作为一种简洁、易读且功能强大的编程语言,被广泛应用于各种领域。作为一名测试开发工程师,熟练掌握Python的模块、包和异常处理是提高代码可维护性和错误处理能力的关键。本文将和大家一起探讨Py…

Linux —— 信号量

Linux —— 信号量 什么是信号量P操作(Wait操作)V操作(Signal操作)信号量的类型 一些接口POSIX 信号量接口:其他相关命令: 基于循环队列的生产者和消费者模型同步关系 多生产多消费 我们今天接着来学习信号…

5.22R语言初步学习-1

今天上课讲R语言,要干什么没讲,分析什么,目的是什么没讲。助教基本上就是让我们打开窗口,按要求抄代码指令,代码原理也没讲......再加上最近正好在学概率论与数理统计,肯定是有用的,所以还是学习…

(全面)Nginx格式化插件,Nginx生产工具,Nginx常用命令

目录 🎫 前言 🎉 开篇福利 🎁 开篇福利 x2 Double happiness # 介绍 # 地址 # 下载 💻 命令及解析 # 整个文件系统中搜索名为nginx.conf的文件 # 编辑nginx.conf文件 # 重新加载配置文件 # 快速查找nginx.conf文件并使…

HTTP协议请求报头(header)

目录 目录 User-Agent与Referer User-Agent Referer Cookie HTTP报头(header)的结构是“键值对”结构,每个键值对占一行,键和值之间使用分号分隔。 报头的种类有很多,本次介绍几个重要的。 Host:表示请…

中电金信:从系统升级入手 看这些银行如何激活信贷业务

近期,我国金融机构围绕科技金融、绿色金融、普惠金融、养老金融、数字金融五篇大文章,持续优化信贷结构,不断增强金融服务实体经济作用。金融业认真落实国家经济发展目标,不断优化资金投向结构,持续加大重大战略、重点…

robosuite导入自定义机器人

目录 目的:案例一:成果展示具体步骤:URDF文件准备xml文件生成xml修改机器人构建 目的: 实现其他标准/非标准机器人的构建 案例一: 成果展示 添加机器人JAKA ZU 7 这个模型 具体步骤: URDF文件准备 从…