面向对象之封装,继承,多态(上)

python之路-面向对象(封装、继承、多态) 文章目录面向对象-三大特征面向对象-封装封装的定义面向对象-继承继承的概念、语法和特点继承的语法专业术语继承的传递性多级继承方法的重写父类的私有属性和私有方法面向对象-多态面向对象-类属性和类方法面向对象-静态方法 面向对象-三大特征 封装 ------根据职责将属性和⽅法封装到⼀个抽象的类中; 封装 ------根据职责将属性和⽅法封装到⼀个抽象的类中; 多态 ------不同的对象调⽤相同的⽅法,产⽣不同的执⾏结果,增加代码的灵活度; 面向对象-封装 封装的定义 就是把类的属性和方法封装到类的内部 阅读详情

本文来自:曹胜欢博客专栏。转载请注明出处:http://blog.youkuaiyun.com/csh624366188

 

Java是一种面向对象的语言,这是大家都知道的,他与那些像c语言等面向过程语言不同的是它本身所具有的面向对象的特性——封装,继承,多态,这也就是传说中的面向对象三大特性

一:从类和对象开始说起:

 Oop:Object Oriented Programming(面向对象编程):

  类:对象的蓝图,生成对象的模板,是对一类事物的描述,是抽象的概念上的定义

  对象:对象是实际存在的该类事物的每个个体,因而也称为实例

         类之间的三种关系:依赖关系(uses-a)聚集关系(has-a)继承关系(is-a)

在java中,类和对象的关系就像是动物和老虎的关系一样,老虎属于动物,老虎只是动物的一个实例。

      类表示了对象的类别,是创建对象的蓝本。建立一个事物的抽象模型,本质上就是表达该事物的性质和行为。使用类来建立抽象模型,是通过在类中定义变量和方法来实现的。

类中定义的属性是一种可存储值的变量,该变量代表着事物的具体性质。类的对象所具有的行是由定义的方法来实现的。类中定义的变量和方法被称为类的成员。

对象是类的实例。对象在构造时以类为蓝本,创建对象的过程叫做实例化。对象是类所表示的抽象事物的具体实例。

面向对象:

1:将复杂的事情简单化。

2:面向对象将以前的过程中的执行者,变成了指挥者。

3:面向对象这种思想是符合现在人们思考习惯的一种思想。

 

过程和对象在我们的程序中是如何体现的呢?

过程其实就是函数。

对象是将函数等一些内容进行了封装。

 

匿名对象使用场景:

1:当对方法只进行一次调用的时候,可以使用匿名对象。

2:当对象对成员进行多次调用时,不能使用匿名对象。必须给对象起名字。

 

在类中定义其实都称之为成员。成员有两种:

1:成员变量:其实对应的就是事物的属性。

2:成员函数:其实对应的就是事物的行为。

 

所以,其实定义类,就是在定义成员变量和成员函数。但是在定义前,必须先要对事物进行属性和行为的分析。才可以用代码来体现。

 

private int age;//私有的访问权限最低,只有在本类中的访问有效。

注意:私有仅仅是封装的一种体现形式而已。

 

私有的成员:其他类不能直接创建对象访问,所以只有通过本类对外提供具体的访问方式来完成对私有的访问。

可以通过对外提供函数的形式对其进行访问。

好处:可以在函数中加入逻辑判断等操作,对数据进行判断等操作。

 

总结:开发时,记住,属性是用于存储数据的。直接被访问,容易出现安全隐患。所以,类中的属性通常被私有化,并对外提供公共的访问方法。

这个方法一般有两个,规范写法:对于属性 xxx,可以使用setXXX(),getXXX()对其进行操作。

 

类中怎么没有定义主函数呢?

注意:主函数的存在,仅为该类是否需要独立运行。如果不需要,主函数是不用定义的。

 

成员变量和局部变量的区别:

1:成员变量直接定义在类中。

   局部变量定义在方法中,参数上,语句中。

 

2:成员变量在这个类中有效。

局部变量只在自己所属的大括号内有效,大括号结束,局部变量失去作用域。

 

3:成员变量存在于堆内存中,随着对象的产生而存在,消失而消失。

局部变量存在于栈内存中,随着所属区域的运行而存在,结束而释放。

 

构造函数:用于给对象进行初始化,是给与之对应的对象进行初始化,它具有针对性,函数中的一种。

特点:

1:该函数的名称和所在类的名称相同。

2:不需要定义返回值类型。

3:该函数没有具体的返回值。

 

记住:所有对象创建时,都需要初始化才可以使用。

 

注意事项:

一个类在定义时,如果没有定义过构造函数。那么该类中会自动生成一个空参数的构造函数。为了方便该类创建对象,完成初始化。

如果在类中自定义了构造函数。那么默认的构造函数就没有了。

简单一句话:你写了,默认就没有了。你没写就只有默认的。

 

一个类中,可以有多个构造函数,因为它们的函数名称都相同,所以只能通过参数列表来区分。所以,一个类中如果出现多个构造函数。它们的存在是以重载体现的。

 

构造函数和一般函数有什么区别呢?

1:两个函数定义格式不同。

2:构造函数是在对象创建时,就被调用,用于初始化,而且初始化动作只执行一次。

    一般函数,是对象创建后,需要调用才执行,可以被调用多次。

   

什么时候使用构造函数呢?

分析事物时,发现具体事物一出现,就具备了一些特征,那就将这些特征定义到构造函数内。

 

构造代码块和构造函数有什么区别?

构造代码块:是给所有的对象进行初始化,也就是说,所有的对象都会调用一个代码块。只要对象一建立。就会调用这个代码块。

构造函数:是给与之对应的对象进行初始化。它具有针对性。

 

Person p = new Person();

创建一个对象都在内存中做了什么事情?

1:先将硬盘上指定位置的Person.class文件加载进内存。

2:执行main方法时,在栈内存中开辟了main方法的空间(压栈-进栈),然后在main方法的栈区分配了一个变量p。

3:在堆内存中开辟一个实体空间,分配了一个内存首地址值。new

4:在该实体空间中进行属性的空间分配,并进行了默认初始化。

5:对空间中的属性进行显示初始化。

6:进行实体的构造代码块初始化。

7:调用该实体对应的构造函数,进行构造函数初始化。()

8:将首地址赋值给p ,p变量就引用了该实体。(指向了该对象)

二:类的访问权限

(1)public:

对于成员来说:任何其他类都可以访问它们,不管在同一个包中还是在另外的包中。
对于类来说:    也是一样。

(2)friendly:

对于成员来说:如果一个类的成员没有任何权限修饰,那么它门就是缺省包访问权限,用friendly来表示,注意friendly不是Java中的关键字,这里是个人喜欢的方式用它表示而已。同一个包内其它类可以访问,但包外

就不可以。对于同一个文件夹下的、没有用package的classes,Java会自动将这些classes初见为隶属于该目录

的default package,可以相互调用class中的friendly成员。如以下两个class分别在同一个文件夹的两个文件

中,虽然没有引入package,但隶属于相同的default package。

对于类来说:同一个包中的类可以用。总之,类只可以声明为public或者friendly。

(3)private:

对于对于成员来说:只能在该成员隶属于的类中访问。

对于类来说:类不可以声明为private。

4)protected:

对于对于成员来说:相同包中的类可以访问(包访问权限);基类通过protected把基类中的成员的访问权限赋予派生类不是所有类(派生类访问权限)。

对于类来说:类不可以声明为protected

说明:
1
、每个编译单元(类文件)都仅能有一个public class
2
、public class的名称(包含大小写)必须和其类文件同名。
3
、一个类文件(*.java)中可以不存在public class。
   这种形式的存在的场景:如果我们在某个包内撰写一个
class,仅仅是为了配合同包内的其他类工作,而且
   我们不想再为了撰写说明文档给客户(不一定是现实意义的客户,可能是调用这个类的类)看而伤脑筋,而且有可能过一段时间之后
   有可能会彻底改变原有的做法,并完全舍弃旧版本,以全新的版本代替。
4
、class不可以是private和protected。
5
、如果不希望那个任何产生某个class的对象,可以将该类得所有构造函数设置成private。但是即使这样也可以生成该类的对象,就是class的static的成员(属性和方法)可以办到。

三、面向对象之——封装

    封装:顾名思义,隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。

    封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过 外部接口,一特定的访问权限来使用类的成员。 

封装的大致原则:

1把尽可能多的东西藏起来.对外提供简捷的接口. 

2、把所有的属性藏起来. 

3、封装好处:将变化隔离;便于使用;提高重用性;安全性。

四:this和static详解

this:代表对象。就是所在函数所属对象的引用。

this到底代表什么呢?哪个对象调用了this所在的函数。this就代表哪个对象。就是哪个对象的引用。

开发时,什么时候使用this呢?

在定义功能时,如果该功能内部使用到了调用该功能的对象。这时就用this来表示这个对象。

 

this 还可以用于构造函数间的调用。

调用格式:this(实际参数);

this对象后面跟上 .  调用的是成员属性和成员方法(一般方法);

this对象后面跟上 () 调用的是本类中的对应参数的构造函数。

注意:用this调用构造函数,必须定义在构造函数的第一行。因为构造函数是用于初始化的,所以初始化动作一定要执行。否则编译失败。

static:关键字,是一个修饰符。用于修饰成员(成员变量和成员函数)。

特点:

1,想要实现对象中的共性数据的对象共享。可以将这个数据进行静态修饰。

2,被静态修饰的成员,可以直接被类名所调用。也就是说,静态的成员多了一种调用方式。类名.静态方式。

3,静态随着类的加载而加载。而且优先于对象存在。

 

弊端:

1,有些数据是对象特有的数据,是不可以被静态修饰的。因为那样的话,特有数据会变成对象的共享数据。这样对事物的描述就出了问题。所以,在定义静态时,必须要明确,这个数据是否是被对象所共享的。

2,静态方法只能访问静态成员,不可以访问非静态成员。

因为静态方法加载时,优先于对象存在,所以没有办法访问对象中的成员。

3,静态方法中不能使用this,super关键字。

因为this代表对象,而静态在时,有可能没有对象,所以this无法使用。

4,主函数是静态的。

 

什么时候定义静态成员呢?或者说:定义成员时,到底需不需要被静态修饰呢?

成员分两种:

1,成员变量。(数据共享时静态化)

该成员变量的数据是否是所有对象都一样:

如果是,那么该变量需要被静态修饰,因为是共享的数据。 

如果不是,那么就说这是对象的特有数据,要存储到对象中。 

2,成员函数。(方法中没有调用特有数据时就定义成静态)

    如果判断成员函数是否需要被静态修饰呢?

    只要参考,该函数内是否访问了对象中的特有数据:

    如果有访问特有数据,那方法不能被静态修饰。

    如果没有访问过特有数据,那么这个方法需要被静态修饰。

 

成员变量和静态变量的区别:

1,成员变量所属于对象。所以也称为实例变量。

静态变量所属于类。所以也称为类变量。

 

2,成员变量存在于堆内存中。

静态变量存在于方法区中。

 

3,成员变量随着对象创建而存在。随着对象被回收而消失。

静态变量随着类的加载而存在。随着类的消失而消失。

 

4,成员变量只能被对象所调用 。

静态变量可以被对象调用,也可以被类名调用。

所以,成员变量可以称为对象的特有数据,静态变量称为对象的共享数据。

 

静态的注意:静态的生命周期很长。

 

静态代码块:就是一个有静态关键字标示的一个代码块区域。定义在类中。

 

作用:可以完成类的初始化。

 

静态代码块随着类的加载而执行,而且只执行一次(new 多个对象就只执行一次)。如果和主函数在同一类中,优先于主函数执行。

 

主函数的解释:

保证所在类的独立运行。是程序的入口。被jvm调用。

 

public:访问权限最大。

static:不需要对象。直接类名即可。

void:主函数没有返回值。

main: 主函数特定的名称。

(String[] args):主函数的参数,是一个字符串数组类型的参数。jvm调用main方法时,传递的实际参数是 new String[0]。

 

jvm默认传递的是长度为0的字符串数组。我们在运行该类时,也可以指定具体的参数进行传递。可以在控制台,运行该类时,在后面加入参数。参数之间通过空格隔开。jvm会自动将这些字符串参数作为args数组中的元素,进行存储。

 

静态代码块、构造代码块、构造函数同时存在时的执行顺序:

静态代码块 --构造代码块 --构造函数;

 

 本文来自:曹胜欢博客专栏。转载请注明出处:http://blog.youkuaiyun.com/csh624366188

 

面向对象的封装,继承,多态。 封装 封装从字面上来理解就是包装的意思 对象封装的是自己的属性和方法 1、良好的封装能够减少耦合。 2、类内部的结构可以自由修改。 3、可以对成员进行更精确的控制。 4、隐藏信息,实现细节 继承 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。is-------a的关系 1、子类拥有父类非private的属性和方法。 2、子类可以拥有自己属性和方法,即子类可以对父类进行扩展。 3、子类可以用.. 阅读详情

相关推荐

基于Python的手语识别项目(简单版)

总之,看似简单的代码,实则花费了我不少的时间和精力,我曾无数次在深夜的灯光下,与代码为伴,只为了一点点优化,一丝丝提升。让我们一起,以尊重原创的精神,推动编程领域的发展,让这份热爱和技术的力量,照亮更多人的前行之路。模型的建立(---------------本人采用的是开源的asl-alphabet手势识别库,记得放在路径下--------------)current_dir需要根据自己的路径修改!current_dir需要根据自己的路径修改!current_dir需要根据自己的路径修改!

lusen_j的博客 1966

Java程序员从笨鸟到菜鸟之(二)面向对象之封装,继承,多态(上)

本文来自:曹胜欢博客专栏。转载请注明出处:http://blog.youkuaiyun.com/csh624366188 Java是一种面向对象的语言,这是大家都知道的,他与那些像c语言等面向过程语言不同的是它本身所具有的面向对象的特性——封装,继承,多态,这也就是传说中的面向对象三大特性 一:从类和对象开始说起: Oop:ObjectOrientedProgramming(面向对象编程): ...

long_yu2的专栏 195

Simeck算法流程

算法流程 paper在此:https://eprint.iacr.org/2015/612.pdf x ⋘\lll⋘ c denotes the cyclic shift of x to the left by c bits. x & y is the bitwise AND of x and y. x⊕yx \oplus yx⊕y is the exclusive-or (XOR) of x and y. github代码在此:https://github.com/bozhu/Simeck

Simp123 1074

Java内部类调用外部类对象的方法和成员函数过程

Java中内部类是如何调用外部类的成员变量和方法的?我们下看看下面的例子 package com.iworktool.libjava; public class Outer{ private String privateValue = "privateValue"; public String publicValue = "publicValue"; private class Inner{ public Inner() {}

skyf1y的专栏 3627

CentOS 7 常用命令大全

CentOS中Linux命令

m0_63075763的博客 2018

腾讯会议录屏损坏修复:使用 recover_mp4 工具的完整解决方案

腾讯会议录屏损坏修复指南 当腾讯会议录屏因电脑蓝屏等意外导致MP4文件损坏时,可使用recover_mp4工具结合FFMPEG进行修复。操作步骤包括:1)准备相同参数正常视频作为参考;2)分析正常视频生成结构文件;3)分离损坏视频的音视频流;4)使用FFMPEG重新封装。该方法能有效修复因意外中断导致的视频索引损坏问题。修复前需将工具和文件放在同一目录下,并确保参考视频与损坏录屏的参数完全一致。

m0_62498496的博客 2627

Java笔记 一 函数、类、对象、封装以及静态注意事项

1、dos命令行,常用命令 dir:列出当前目录下的文件以及文件夹 md:创建目录 rd:删除目录 cd:进入指定目录 cd…:退回到上一级目录 cd:退回到根目录 del:删除文件 exit:退出dos命令行 2、主函数作用: 程序的入口、被虚拟机调用、保证程序的独立运行 3、设置classpath作用: 没有设置,就在当前目录下查找执行.class文件,否则,JVM就在指定的目录下执行.cla...

khq溪风的博客 359

【通过STM32CubeMx配置LWIP+FreeRTOS并通过Socket实现TCP_Client/Sever】

生成KEIL工程之后,勾选上use MicroLIB,代码上暂时无需做其他修改,编译下载。由于使用了FreeRTOS,因此系统的TimeBase Source修改成TIM1。在CubeMx上面选择NUCLEO-F429ZI开发板,并采用默认配置。打开电脑命令行,去ping这设置好的IP,能够实现Ping通。使能LWIP,并且先禁用DHCP,设置好静态IP。修改defaultTask的栈大小。Platform选择LAN8742。修改堆栈大小,生成工程。使能FreeRTOS。

qq_42617357的博客 6111

java类的成员方法_Java 面向对象(四)类的成员 之 方法

一、方法1、什么是方法(method、函数)(1)方法是类或对象行为特征的抽象,用来完成某个功能操作。在某些语言中也称为函数或过程;(2)将功能封装为方法的目的是,可以实现代码重用,简化代码,解决代码冗余的现象;(3)Java 里的方法不能独立存在,所有的方法必须定义在类里;2、方法的声明方法的声明格式:修饰符 返回值类型  方法名(参数类型 形参2,参数类型 形参2,...){方法体程序代码;...

weixin_32272937的博客 1286

Windows 11 部署 Docker Desktop:从 WSL 报错到服务配置的完整排障实录

本文详细记录了在Windows 11上部署Docker Desktop时遇到的WSL报错问题及完整解决方案。从Hyper-V配置、BIOS设置到系统服务检查,提供了一系列实用命令和排查步骤,帮助开发者快速解决'Unexpecter WSL error'等常见问题,实现Docker与WSL2的稳定运行。

weixin_30687051的博客 120

Unity Tilemap瓦片动态缩放:保持网格尺寸不变的三种实现方案

本文详细探讨了在Unity中实现Tilemap瓦片动态缩放同时保持网格尺寸不变的三种核心方案。针对编辑器静态调整、整体风格化处理及运行时动态控制等不同场景,分别解析了直接修改瓦片属性、调整Tilemap Renderer材质参数以及使用SetTransformMatrix与Matrix4x4矩阵变换的实践方法、优缺点及选型指南,为2D游戏开发提供灵活高效的视觉与交互解决方案。

grass的博客 628

面向对象三大特性:封装、继承和多态

//标注方法,用于编译器检查是否是覆盖@Override //标注 Ctrl + shift + m:用于快速导入包 一、面向对象的封装 Encapsulation 含义:类中的成员改公开的公开,改隐藏的隐藏; 访问控制修饰符:public(公开的)、protected(受保护的)、默认不写的、private(私有的) 可见范围递减:如下 修饰符 本类 ...

ankui9881的博客 249

MNI152 坐标空间和 fsaverage 坐标空间相互转换, 如已知fsaverage空间的坐标如何求MNI152 坐标?aparc.a2009s.annot转化到MNI152空间?

大多数神经影像学研究的结果是在体积(例如,MNI152)或表面(例如,fsaverage)坐标系中报告的。体积坐标系和表面坐标系之间的准确映射可以促进许多应用,例如将 fMRI 组分析从 MNI152 投影到 fsaverage 以进行可视化或从 fsaverage 投影静息状态 fMRI 分区对 MNI152进行新数据的体积分析。Wu et al., 2018 评估了三种在 MNI152通过模拟上述应用的 Colin27 和 fsaverage 坐标系:将组平均数据从 MNI152/Colin27 投影到

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 2966

【Python面向对象】封装、继承、多态

面向对象有三个基本特征,分别是封装、继承和多态。其中,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用/调用!本文将利用Python语言进行简单举例,以帮助大家更好地理解这三个特征。

尹煜的博客 5682

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Go 面向对象,封装、继承、多态

经典OO(Object-oriented 面向对象)的三大特性是封装、继承与多态,这里我们看看Go中是如何对应的。

m0_61634551的博客 1127

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

如何理解面向对象的封装、继承和多态?

面向对象是一种符合人类思维习惯的编程思想。现实生活中存在各种形态不同的事物,这些事物之间存在着各种各样的联系。在程序中使用对象来映射现实中的事物,使用对象的关系来描述事物之间的联系,这种思想就是面向对象。 对于学习过其他编程语言的人员来说,可能会想到面向过程。面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一一实现,使用的时候依次调用就可以了。面向对象则是把构成问题的事务按照一定规则划分为多个独立的对象,然后通过调用对象的方法来解决问题。当然,一个应用程序会包含多个对象,通过多个对象的相互配合即

qq_45810826的博客 7581

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

面向对象(封装,继承,多态)

1.封装【encapsulation】 【/ɪnˌkæpsjuˈleɪʃ(ə)n/】1.封装【encapsulation】 【/ɪnˌkæpsjuˈleɪʃ(ə)n/】在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过严格的接口控制。

qq_57884857的博客 1481

Java面向对象三大特征(封装,继承,多态)

什么是多态?多态是在继承、实现情况下的一种现象,表现为:对象多态、行为多态。多态体现为父类引用变量可以指向子类对象。比如:Teacher和Student都是People的子类,代码可以写成下面的样子。

szm0225的博客 1903

面向对象之封装、继承和多态

Java中使用关键字extends来让一个类和另一个类建立起父子关系例如:public class Student extends Person{}Student成为子类(派生类),Person成为父类(基类或者超类)当子类觉得父类的某个方法不好用或无法满足自身的需求时,子类可以重新写一个跟父类的方法名称相同、参数列表一样的方法,去覆盖父类的方法,这就是方法重写。重写后,Java会遵循就近原则多态指的是继承或者实现关系下的一种。表现为:对象多态、行为多态。

FFFFFAAAAC的博客 1546

面向对象-封装、继承与多态

继承有延续(下一代延续上一代的基因、财富)、扩展(下一代和上一代又有所不同)的意思。多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类中无需再定义这些属性和行为,只需要和抽取出来的类构成某种关系。其中,多个类可以称为子类,也叫派生类;多个类抽取出来的这个类称为父类超类(superclass)或者基类。

Sapphire_Veg的博客 2438

【C++面向对象】六、封装、继承和多态

生活中的多态,是指的客观的事物在人脑中的主观体现。例如,在路上看到一只哈士奇,你可以看做是哈士奇,可以看做是狗,也可以看做是动物。主观意识上的类别,与客观存在的事物,存在is a的关系的时候,即形成了多态。在程序中,一个类的引用指向另外一个类的对象,从而产生多种形态。当二者存在直接或者间接的继承关系时,父类引用指向子类的对象,即形成多态。多态是面向对象三大特性之一,记住继承是多态的前提,如果类与类之间没有继承关系,也不会存在多态。

咖喱年糕的博客 1389

面向对象编程之封装、继承、多态

导语 各位小伙伴们大家好呀,今天我们给大家分享一个我们java语言当中非常重要的一个模块——面向对象。 文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 一、面向对象 1.1面向对象概述 当我们接触编程语言时,总会有人提到面向对象编程,那么什么是面向对象呢 ?相信大家刚开始写出来的第一个程序就是helloworld。那么helloworld程序很简单哈。就是一个输出语句,那么在我们了解了面向对象编程...

秋雨绵绵 2717

面向对象的三大特性: 继承,封装,多态

封装即隐藏对象的属性和实现细节,仅对外提供公共访问方式,保证了模块具有较好的独立性,使得程序维护修改较为容易。继承提高了代码的复用性,多态提高代码的扩展性和可维护性。三者共同达到了一个目的:使得对应用程序的修改带来的影响更加局部化,程序更加健壮,而且易维护、更新和升级。

Yietong的博客 2655

【面向对象三大特性(封装、继承、多态)】

特性 核心目标 实现方式 典型应用场景封装 保护数据,隐藏细节 private属性 + public方法 用户类、支付系统、数据校验继承 代码复用,扩展功能 extends关键字 + 方法重写 分类系统(动物→猫/狗)多态 统一接口,灵活调用 方法重写 + 向上转型 图形绘制、支付方式切换实际开发建议封装优先:所有属性默认用 private,按需开放 getter/setter。慎用继承:优先用组合(如 class Car { Engine engine;})。

weixin_42900944的博客 1361

面向对象(C++):封装、继承与多态

本文介绍了面向对象编程(OOP)的三大核心特性:封装、继承与多态。 封装:通过访问限定符(public/private/protected)控制数据访问权限,保护数据安全。建议将成员变量设为private,通过public方法提供访问接口,从而控制数据合法性、隐藏实现细节并便于调试。 继承:通过继承实现代码复用,子类(派生类)可以继承父类(基类)的成员并扩展特有功能。继承的关键是合理设计父类,抽取出子类共有的属性和方法。 多态:通过虚函数实现同一接口的不同行为表现,使派生类能够重写基类方法(文中后续会详细讲

2402_87867439的博客 937

面向对象中封装,继承,多态的意义

封装 封装的概念就是把自己的属性私有化并提供调用方法。 关键字:prvate 代码: public class Dssa { private int age; private String name; private int stature; public int getAge() { return age; } public void setAge(int age) { this.a...

qq_44805323的博客 1502
上一篇: java基础知识概括(一)
下一篇: Java程序员从笨鸟到菜鸟之(三)面向对象之封装,继承,多态(下)
monkeyklp
博客等级 码龄15年 3粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值