多态

day 21 小结

杀马特。学长 韩版系。学妹 提交于 2019-12-01 04:54:52
目录 组合 什么是组合 为什么要使用组合 封装 什么是封装 为什么要封装 如何封装 访问限制机制 什么是访问限制机制 访问限制机制的目的 property 什么是property 为什么要用property 如何使用property 多态 什么是多态 多态的目的 如何实现 抽象类 使用的目的 如何使用 组合 什么是组合 组合指的是一个对象中的属性,是另一个对象 为什么要使用组合 减少代码冗余 class People: def __init__(self,name,age,sex): self.name = name self.age = age self.sex = sex class Teacher(People): def __init__(self,name,age,sex) super().__init(name,age,sex) class Date: def __init__(self,year,month,day) self.year = year self.month = month self.day = day def tell_birth(self) print(f''' === 出生年月日 === 年: {self.year} 月: {self.month} 日: {self.day} ''') tea1 = Teacher('tank',14,'male'

小谈Java Enum的多态性

扶醉桌前 提交于 2019-12-01 04:35:51
Enum+多态,我没说错,不过Enum是不可以被继承的,也不可以继承自别人,只是能实现接口而已,何谈多态? 不过还是先看看“现象”吧: Java代码 public enum Fruit { APPLE, PEAR, PEACH, ORANGE; } 以上是一个简单的enum,关于它,我要补充一点: Fruit是java.lang.Enum的 子类 ,准确地说,是Enum<Fruit>的子类,这里出现了一个继承关系,不过这个继承是编译器帮我们做的,我们不能显式地去做。不信的话我们可以试着用一个Enum<Fruit>的引用去指向一个APPLE,肯定是没问题的,我就不再试了。 为了更直观地说明这一点,我们来看看Fruit的反编译结果吧: Java代码 package test; public final class Fruit extends Enum { private Fruit(String s, int i) { super(s, i); } public static Fruit[] values() { Fruit afruit[]; int i; Fruit afruit1[]; System.arraycopy(afruit = ENUM$VALUES, 0, afruit1 = new Fruit[i = afruit.length], 0, i); return

面向对象的三个基本特征(讲解)

别等时光非礼了梦想. 提交于 2019-12-01 04:35:38
面向对象的三个基本特征(讲解) 面向对象的三个基本特征是:封装、继承、多态。 封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 继承 面向对象编程 (OOP) 语言的一个主要功能就是 “ 继承 ” 。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”。 被继承的类称为 “ 基类 ” 、 “ 父类 ” 或 “ 超类 ” 。 继承的过程,就是从一般到特殊的过程。 要实现继承,可以通过 “ 继承 ” ( Inheritance )和 “ 组合 ” ( Composition )来实现。 在某些 OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。 继承概念的实现方式有三类:实现继承、接口继承和可视继承。 Ø 实现继承是指使用基类的属性和方法而无需额外编码的能力; Ø 接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力; Ø 可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。 在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是 “ 属于 ” 关系

面向对象的三个基本特征

£可爱£侵袭症+ 提交于 2019-12-01 04:35:25
面向对象的三个基本特征(讲解) 面向对象的三个基本特征是:封装、继承、多态。 封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 继承 面向对象编程 (OOP) 语言的一个主要功能就是 “ 继承 ” 。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”。 被继承的类称为 “ 基类 ” 、 “ 父类 ” 或 “ 超类 ” 。 继承的过程,就是从一般到特殊的过程。 要实现继承,可以通过 “ 继承 ” ( Inheritance )和 “ 组合 ” ( Composition )来实现。 在某些 OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。 继承概念的实现方式有三类:实现继承、接口继承和可视继承。 Ø 实现继承是指使用基类的属性和方法而无需额外编码的能力; Ø 接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力; Ø 可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。 在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是 “ 属于 ” 关系

面向对象的基本特征

只愿长相守 提交于 2019-12-01 04:34:56
面向对象方法具有三个基本特征: 封装:封装是将对象的实现细节隐藏起来,然后通过一些公共的方法来暴露该对象的功能。 继承:继承是面向对象实现软件复用的重要手段,当子类继承父类后,子类作为一种特殊的父类,将直接获得父类的属性和方法; 多态:多态讲的是子类对象可以直接赋给父类变量,但运行的时候依然表现出子类的行为特征,这意味着同一个类的对象在执行同一个方法时,可能表现出多种行为特征。 对面向对象的理解 ### 封装 类的封装是指类把所有的操作都封闭起来,仅仅提供接口出来让其他人使用,使用的人没有必要懂得类里面的操作,只需要懂得操作接口就可以了。比如开汽车,我们只需要懂得方向盘、刹车、油门等等的使用就可以了,没有必要知道刹车是如何构成的封闭好的操作。同时,封装也提高了程序的可替换性。比如两个汽车公司实现刹车的方式不一样,但是,只要我们学会了使用刹车,那么,开两个汽车公司的车就都没有问题了,我们不需要考虑他们怎样实现刹车这门技术的。 ### 继承 类的继承性是指从已有的一个类来extends子类,子类具有了父类的所有特征,同时,子类也可以有新的特性。比如:人是一个类,男人具有了人类的所有的特性,比如思考,比如劳动。同时,男人也有新的特性,比如男人会长胡子。 ### 多态 类的多态性是一个对象的某项功能可以处理不同类型的问题,或者一个子类可以将父类的某个功能替换成新的功能

1011课堂小结 day21

◇◆丶佛笑我妖孽 提交于 2019-12-01 04:33:21
组合 什么是组合 组合指的是一个对象中的属性,是另一个对象. 为什么要使用组合 为了减少代码冗余 封装 什么是封装 封装指的是把一堆属性(特征与技能)封装到一个对象中 为什么要封装 封装的目的为了方便存取,可以通过对象.属性的方式获取属性 封装 - 隐藏 在python中 隐藏只是封装的一种表现 如何隐藏 在类内部定义, 凡是以__开头的数据属性与方法属性 会被python内部隐藏起来(变形),让外部不能"直接"访问类内部的__开头的属性 隐藏的目的 对重要数据获取的逻辑更加严谨, 进而保证了数据的安全. 如何调用使用隐藏属性 接口: 隐私属性可以通过封装一个接口,在接口内做业务逻辑的处理,再把数据返回给调用者 property 什么是property python内置的装饰器, 主要是给类内部的方法使用 为什么要使用property 在对象调用某个方法时,将对象.方法()变成对象.方法 看起来想一个普通的数据属性, 遵循了统一访问的原则 如何使用property @property 多态 什么是多态 多态指的是同一种事物的多种形态 多态的目的 统一子类编写的规范, 为了让使用者更方便调用相同功能的方法 抽象类 什么是抽象类 abc模块 abstract_class 使用抽象类的目的 强制子类必须遵循父类的一套标准 鸭子类型 在不知道当前对象是何物的情况下,但是你长得像鸭子

JAVA多态抽象类接口学习

时光毁灭记忆、已成空白 提交于 2019-12-01 02:45:41
面向对象多态 多态的概念 多态是面向对象编程语言的重要特性,它允许基类的指针或引用指向派生类的对象,而在具体访问时实现方法的动态绑定。Java 对于方法调用动态绑定的实现主要依赖于方法表,但通过类引用调用(invokevitual)和接口引用调用(invokeinterface)的实现则有所不同。 参考链接来自 https://www.cnblogs.com/kaleidoscope/p/9790766.html 多态中的成员访问特点 多态中用于变量 编译看左边、运行看左边。 多态用于方法(普通方法) 编译看左,运行看右。 多态用于静态方法 编译看左,运行看左 多态问题 不能使用子类特有的功能 解决办法就是使用向上转型和向下转型(强转)的办法。 抽象类的概念 抽象类在现实生活中没有实体。但是在代码中可以封装共性而且还避免了直接初始化。 抽象类成员特点 成员变量:既可以是变量,也可以是常量。 构造方法: 有构造方法 但是不能直接初始化,可以使用子类初始化和子类多态初始化。 成员方法:可以使抽象的,也可以是非抽象的。 抽象方法:强制要求子类做的事情(重写)。 abstract 在修饰方法时不能和哪些关键字共存 private 冲突 final 冲突 static 冲突 接口 接口个人认为是一个没有构造方法的类,可以继承。可以有成员变量和方法。 接口的成员特点 成员变量:只能是常量

.net基础知识

巧了我就是萌 提交于 2019-12-01 01:53:40
类:具体事务的抽象化 对象:具体事务的抽象化的具现 面向对象:封装继承多态 多态:不同对象调用相同方法对应不同的表现形式 来源: https://www.cnblogs.com/WL542300690/p/11646900.html

java多态

余生颓废 提交于 2019-12-01 00:33:26
java多态 多态的定义 Java的引用变量有两种类型:2901583663一个是编译时期的类型,一个是运行时类型。编译时类型由声明该变量时使用的类型决定,运行时的类型由实际付给该变量的对象决定。如果编译时类型和运行时的类型不一致,就可以出现所谓的多态。简单的说就是同一个对象(事物),在不同时刻体现出来的不同状态。 多态的前提 A:要有继承关系。 B:要有方法重写。 C:要有父类引用指向子类对象。 多态中的成员访问特点 A:成员变量 编译看左边,运行看左边。 B:构造方法 创建子类对象的时候,访问父类的构造方法,对父类的数据进行初始化。 C:成员方法 编译看左边,运行看右边。 D:静态方法 编译看左边,运行看左边。 (静态和类相关,算不上重写,所以,访问还是左边的) 多态的好处   提高了代码的维护性(继承保证)   提高了代码的扩展性(由多态保证) 多态的定义 Java的引用变量有两种类型:2901583663一个是编译时期的类型,一个是运行时类型。编译时类型由声明该变量时使用的类型决定,运行时的类型由实际付给该变量的对象决定。如果编译时类型和运行时的类型不一致,就可以出现所谓的多态。简单的说就是同一个对象(事物),在不同时刻体现出来的不同状态。 多态的前提 A:要有继承关系。 B:要有方法重写。 C:要有父类引用指向子类对象。 多态中的成员访问特点 A:成员变量 编译看左边

Java 教程

眉间皱痕 提交于 2019-11-30 22:05:22
Java是一种编程语言。 Java可用于开发移动应用、web应用、桌面应用、游戏等等。 下载Java 从Java官方网站下载Java: https://www.oracle.com 章节 Java 基础 Java 简介 Java 环境搭建 Java 基本语法 Java 注释 Java 变量 Java 数据类型 Java 字符串 Java 类型转换 Java 运算符 Java 字符串 Java Math Java 布尔运算 Java If … Else Java Switch Java While 循环 Java For 循环 Java Break 与 Continue Java 数组 Java 异常 Java 方法 Java 类与对象 Java 类、对象 Java 类的属性 Java 类方法 Java 构造函数 Java 修饰符 Java 封装 Java 包 Java 继承 Java 多态 Java 内部类 Java 抽象 Java 接口 Java 枚举 Java 用户输入/Scanner Java 日期与时间 Java ArrayList Java HashMap Java 包装类 Java 文件 来源: https://www.cnblogs.com/jinbuqi/p/11642216.html