首页 > 编程语言 >面向对象编程

面向对象编程

时间:2023-08-19 19:34:16浏览次数:59  
标签:对象 子类 多态 编译 面向对象编程 类型 父类

面向对象编程

多[多种]态[状态]基本介绍

方法或对象具有多种状态,是面向对象的第三大特征

多态的具体体现

  1. 方法的多态
  2. 对象的多态
/*

1.一个对象的编译类型和运行类型可以不一致

2.编译类型在定义对象时,就确定了,不能改变

3.运行类型是可以变化的

4.编译类型看定义时 = 号的左边,运行类型看 = 号右边

*/

多态注意事项和细节讨论

多态的前提是两个对象(类)存在继承关系

多态是向上转型

  1. 本质:父类的引用指向了子类的对象
  2. 语法 父类类型 引用名 = new 子类类型();
  3. 特点:编译类型看左边,运行类型看右边 ,可以调用父类中的所有成员(须遵守访问权限),不能调用子类中特有成员,最终运行效果看子类的具体体现

多态的向下转型

  1. 语法 子类类型 引用名 = (子类类型)父类引用;
  2. 只能强转父类的引用,不能强转父类的对象
  3. 要求父类的引用必须指向当前目标类型的对象
  4. 当向下转型后,可以调用子类类型中的所有成员

属性没有重写之说,属性的值看编译类型

instanceOf 比较操作符,用于判断对象的运行类型是否为xx类型,或者xx类型的子类型

属性找编译类型,方法找运行类型

java动态绑定机制(非常重要)

  1. 当调用对象方法的时候,该方法会和该对象的内存地址/运行地址绑定(运行类型)
  2. 当调用对象属性时,没有动态绑定机制,哪里声明,哪里使用

标签:对象,子类,多态,编译,面向对象编程,类型,父类
From: https://www.cnblogs.com/ice-big/p/17642941.html

相关文章

  • 20-面向对象编程-多态
    面向对象编程有三大特征:封装、继承和多态 访问修饰符可以控制属性的访问范围public:表示公共访问级别,可以被任何类访问。protected:表示受保护访问级别,可以被类本身、子类和同一包中的类访问。default(缺省):表示默认访问级别,即如果没有使用访问修饰符,默认是此级别,可以被同一包......
  • 17-面向对象编程-继承
    面向对象编程有三大特征:封装、继承和多态 访问修饰符可以控制属性的访问范围public:表示公共访问级别,可以被任何类访问。protected:表示受保护访问级别,可以被类本身、子类和同一包中的类访问。default(缺省):表示默认访问级别,即如果没有使用访问修饰符,默认是此级别,可以被同一包......
  • 16-面向对象编程-封装
    面向对象编程有三大特征:封装、继承和多态 访问修饰符可以控制属性的访问范围public:表示公共访问级别,可以被任何类访问。protected:表示受保护访问级别,可以被类本身、子类和同一包中的类访问。default(缺省):表示默认访问级别,即如果没有使用访问修饰符,默认是此级别,可以被同一包......
  • 7.0 Python 面向对象编程
    python是一种面向对象的编程语言,面向对象编程(Object-OrientedProgramming,OOP)是一种编程思想,其核心概念是“对象”。对象是指一个具有特定属性和行为的实体,而面向对象编程就是通过对这些实体进行抽象、分类、封装和继承等操作,来实现程序的结构和逻辑。在python中,我们可以通过定义类......
  • SV 第五章 面向对象编程基础
    SystemVerilog验证5面向对象编程基础5.1概述对于Verilog和C语言来说,由于他们不是面向对象变成语言,数据的存储往往是分布式的,例如把数据、地址、指令分别保存在不同的数组里面,不利于程序的解读。面向对象变成使得用户可以创建复杂的数据类型,将数据类型紧密地结合在一起,可以在......
  • Javascript 面向对象编程
    avascript是一个类C的语言,他的面向对象的东西相对于C++/Java比较奇怪,但是其的确相当的强大,在 Todd同学的“对象的消息模型”一文中我们已经可以看到一些端倪了。这两天有个前同事总在问我Javascript面向对象的东西,所以,索性写篇文章让他看去吧,这里这篇文章主要想从一个整体的角度......
  • 面向对象编程基础
    欢迎来到C#语言入门指南的第二篇博客!在前一篇博客中,我们了解了C#语言的基本概念和历史,并成功编写了您的第一个C#程序。今天,我们将深入探讨面向对象编程(Object-OrientedProgramming,OOP)的基础知识。OOP是一种常用的编程范式,它将数据和操作数据的方法组织成对象,以便更好地模拟现实世......
  • 三个编程思想:面向对象编程、面向接口编程、面向过程编程【概念解析系列_1】【C# 基础
    〇、前言对于.Net中的编程思想还是十分重要的,也是编码出高效的程序的基础!在使用之前了解其本质,那么用起来就游刃有余。下面来简单对比下三个编程思想,看下它们都是什么,它们之间又有什么关系。一、对象、接口、过程稍等,在介绍主角之前呐,先来了解下它们思想的基础是怎么回事。......
  • 笔记|《面向对象编程技术与方法(C++)》电子工业出版社
    第一章概述C++多态:https://blog.csdn.net/K346K346/article/details/82774937第二章编程基础数据类型枚举:https://www.runoob.com/w3cnote/cpp-enum-intro.html联合:https://www.runoob.com/cprogramming/c-unions.html作用域运算符:c++入门学习篇(1)之::作用域符解析c++条......
  • 面向对象编程的 SOLID 原则 - 里氏替换原则
    里氏替换原则里氏替换原则描述的是子类应该能替换为它的基类。意思是,给定classB是classA的子类,在预期传入classA的对象的任何方法传入classB的对象,方法都不应该有异常。这是一个预期的行为,因为继承假定子类继承了父类的一切。子类可以扩展行为但不会收窄。因此,当......