Java-封装、继承、多态

news/2024/5/19 14:37:36/文章来源:https://blog.csdn.net/u011429167/article/details/129283529

封装

访问控制权限又成为“封装”,是面向对象三大特征中的一种。核心是,只对需要的类可见。

继承

继承是所有OOP(Object Oriented Programming)语言和Java语言都不可或缺的一部分。

只要创建一个类,就隐式继承自Object父类。如果指定了父类,那么父类就继承于Object类。

多态

指的是同一个行为具有多个不同表现形式。多态的实现具有三种重要条件:

  • 继承
  • 重写父类方法
  • 父类引用指向子类对象
public class Fruit {int num;public void eat(){System.out.println("eat Fruit");}
}public class Apple extends Fruit{@Overridepublic void eat(){super.num = 10;Ststem.out.println("eat " + num + " Apple");}public static void main(String[ args]){Fruit fruit = new Apple(); // 这就是多态,父类引用指向子类对象,因为Apple继承于Fruit,并且重写了eat方法,所以能够表现出来多种状态的形式。fruit.eat();}
}

组合

就是将对象引用放在新类中。组合是提高类对的复用性的一种方式。如果希望类更具有扩展性,多用组合,少用继承

public class dinner {private String name;private Fruit fruit;
}public class Fruit {private String name;private String color;
}

组合和继承的区别

代理

除了继承和组合外,另外一种关系模型成为“代理”。

A想要调用B类的方式,A不直接调用,A会在自己的类中创建一个B对象的代理,再有代理代用B的方法。

向上/向下转型

  • 向上转型:通过子类对象(小范围)转化为父类对象(大范围),这种转换是自动完成的,不用强制。
  • 向下转型:通过父类对象(大范围)实例化子类对象(小范围),这种转换不是自动完成的,需要强制指定。

static

static是Java中的关键字,它的意思是“静态的”。可以用来修饰成员变量、方法、代码块。

  • 静态成员变量,也称为类变量。类变量的生命周期和类相同,在整个应用程序的执行期间都有效。
  • 静态方法,该方法可以直接通过“类型.方法名”进行调用。静态方法中不能访问类的非静态成员、方法。
  • 静态代码块,用于类的初始化操作。进而提升程序的性能(静态代码块随着类的加载而执行,很多时候将只需要进行一次的初始化操作放在static代码块中)。

final

代表最终的,不可改的。用来修饰类、变量、方法。

  • final修饰类时,表面这个类不可被继承。final类中方法,会被隐式的final修饰。
  • final修饰方法时,表面这个方法不能被子类重写。
  • final修饰变量时,有来两种情况。
    • 修饰基本数据类型,表示该数据类型的值不可被修改。
    • 修饰引用类型,表示该引用不可再指向另外一个对象。

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

openpnp - configure - 矫正里程碑

文章目录openpnp - configure - 矫正里程碑概述备注ENDopenpnp - configure - 矫正里程碑 概述 进入矫正里程碑了 查找问题 现在第一个问题是X轴的齿隙矫正 根据提示, 将顶部相机移动到主基准点上, 选择容差(就选用默认的0.025), 开始矫正. 正好开机后, 使能了视觉原点归零. …

Puppeteer项目结构梳理

最近接触了一个个人感觉很奈斯的项目,故记录思路如下: puppeteer项目梳理: 入口文件 run.js 入口命令 node run.js YourConfig.json 1、我们可以在自己的config.json里面设置好 ①、登录的用户名密码;aws或其它服务器的access等id,accessKey…

linux--多线程(一)

文章目录Linux线程的概念线程的优点线程的缺点线程异常线程的控制创建线程线程ID以及进程地址空间终止线程线程等待线程分离线程互斥进程线程间的互斥相关概念互斥量mutex有线程安全问题的售票系统查看ticket--部分的汇编代码互斥量的接口互斥量实现原理探究可重入和线程安全常…

校园外卖点餐系统——Day05【套餐管理业务开发】

❤ 作者主页:欢迎来到我的技术博客😎 ❀ 个人介绍:大家好,本人热衷于Java后端开发,欢迎来交流学习哦!( ̄▽ ̄)~* 🍊 如果文章对您有帮助,记得关注、点赞、收藏、…

jQuery 属性操作

jQuery 属性操作 Date: February 28, 2023 Sum: jQuery属性操作、文本属性值、元素操作、尺寸、位置操作 jQuery 属性操作 设置或获取元素固有属性值 prop() 所谓元素固有属性就是元素本身自带的属性,比如 元素里面的 href ,比如 元素里面的 type。 …

爆文制造机!小红书热榜3个方向,告诉你选题诀窍!

我们知道,不论是达人创作内容,还是品牌制定Brief,都需要提前调研筛选海量信息,这时候如果有一个自己的内容素材库,就省事多啦。按照内容需求,我们可以按3个角度划分小红书内容素材:笔记类型、竞…

挑战图像处理100问(24)——伽玛校正

伽马校正(Gamma Correction)是一种图像处理技术,用于校正显示设备的非线性响应。通过对图像进行伽马变换,可以将图像的亮度范围映射到显示设备的亮度范围内,从而提高图像的对比度和细节,改善图像的视觉效果…

【JavaSE】对象的比较

哈喽,大家好!我是保护小周ღ,本期为大家带来的是Java中自定义类型(对象)的三种比较方式,equals 方法, Comparable 泛型接口, Comparator 泛型接口 。在日常编程中,我们常常会需要比较的问题&…

Linux 自带按键驱动

目录 一、内核检查 二、驱动文件 三、设备树 四、验证 一、内核检查 内核一般默认已经使能了 KEY 驱动,但是还是要检查一下。按照如下路径找到相应的配置选项: Device Drivers -> Input device support -> Generic in…

Laravel-admin之自定义操作日志

laravel-admin是封装性极好的框架,自带的就有操作日志的记录,但是对于非开发人员可能看不懂这个日志,所以就想着给修改一下,以谁修改了什么,谁删除了什么,谁审核了什么,谁添加了什么类似&#x…

Java数据结构LinkedList单链表和双链表模拟实现及相关OJ题秒AC总结知识点

本篇文章主要讲述LinkedList链表中从初识到深入相关总结,常见OJ题秒AC,望各位大佬喜欢 一、单链表 1.1链表的概念及结构 1.2无头单向非循环链表模拟实现 1.3测试模拟代码 1.4链表相关面试OJ题 1.4.1 删除链表中等于给定值 val 的所有节点 1.4.2 反转…

vue实现table表格树结构-使用懒加载时-解决子节点增删改后,不刷新子节点数据问题

问题发现 在使用element-ui的table组件时,使用树形结构,并使用了懒加载,可出现了一个问题,在对当前节点添加一个子节点数据,或删除一个子节点数据时,当前节点的子节点数据并不自动刷新出来。element-ui官方…

korean doll likeness模型|Japanese-doll-likeness模型获取及使用

1.模型 之前给大家写了Mac安装stable-diffusion-webui绘制AI妹子保姆级教程,教程在下面 【奶奶看了也不会】AI绘画 Mac安装stable-diffusion-webui绘制AI妹子保姆级教程 今天一早起来打开C站,发现之前热门的几个doll模型都没有了,猜测是某…

2023年湖北助理工程师(初级职称)怎么评?需要什么资料?启程别

2023年湖北助理工程师(初级职称)怎么评?需要什么资料?启程别 助理工程师主要是指初级工程技术人员的职务名称,他是通过相关考试和相关部门评审通过之后所获得的相应名称,想要了解职称更多相关资料可以咨询启…

pyechart绘制多图(三图及以上)的overlap叠加

pyechart github页面:https://github.com/pyecharts/pyecharts 首先要明确多图叠加到一个图的规则,即多个图只能有一个公共的轴: 比如,横坐标含义相同(如时间维度)或者,纵坐标取值含义相同 文…

分页与分段

前面我们分析了虚拟地址和物理地址 我们这里进行一个简单的分析 这个是程序运行时的地址映射 那么这些碎片,我们现在的操作系统究竟如何处理呢? 我们再引入一个实际问题 我们如何把右边的进程p塞入左边的内存空间里面 有一种方法将p5kill掉&#xff…

简易计算器-课后程序(JAVA基础案例教程-黑马程序员编著-第十一章-课后作业)

【案例11-2】 简易计算器 【案例介绍】 1.案例描述 本案例要求利用Java Swing 图形组件开发一个可以进行简单的四则运算的图形化计算器。 2.运行结果 运行结果 【案例分析】 要制作一个计算器,首先要知道它由哪些部分组成,如下图所示: 一…

【原创】java+swing+mysql校园订餐管理系统设计与实现

校园订餐管理系统,主要是为了方便广大学生点餐使用,以往的大多数的校园订餐系统基本使用bs架构,也就是网页系统,但是我们今天不用javaweb,我们主要介绍javaswing同样可以去实现一个校园订餐管理系统。 功能分析&#…

「TCG 规范解读」规范结构

可信计算组织(Ttrusted Computing Group,TCG)是一个非盈利的工业标准组织,它的宗旨是加强在相异计算机平台上的计算环境的安全性。TCG于2003年春成立,并采纳了由可信计算平台联盟(the Trusted Computing Platform Alli…

软测入门(一)测试理念及基础知识

软测入门理念 软件的分类 按层次划分:系统软件、应用软件按组织划分:商业软件、开源软件按结构划分:单机软件、 软件缺陷 由来 Grace Hopper发明Cobol计算机语言,也是找出电脑程序中第一个bug的女程序员 BugDefect 定义 软…