OOP支柱 3 个核心:封装 继承 多态 封装就是将实现细节隐藏起来,也起到了数据保护的作用。 继承就是基于已有类来创建新类可以继承基类的核心功能。 在继承中 另外一种代码重用是:包含/委托,这种重用不是父子类的继承关系,而是一个类定义为另一个类的成员变量。 一个简单的例子,汽车和收音机,汽车里面有 ...
分类:
其他好文 时间:
2019-10-29 00:10:34
阅读次数:
97
TreeMap实现了SotredMap接口,它是有序的集合。而且是一个红黑树结构,每个key-value都作为一个红黑树的节点。如果在调用TreeMap的构造函数时没有指定比较器,则根据key执行自然排序,如果指定了比较器则按照比较器来进行排序。 一、数据结构 1、继承关系 2、实现接口 3、基本属 ...
分类:
其他好文 时间:
2019-10-25 10:20:50
阅读次数:
66
假设有C继承B,B继承A; 继承会继承除private修饰的成员变量,方法。但不会继承构造器。 所以调用被继承下来的方法时,不需要指明主调者,但是调用构造器时,就需要指明主调者,那就是super。如果继承中出现了函数的覆盖,那么默认主调者就是本对象(实例方法)或本类(类方法),如果想要调用被覆盖的方 ...
分类:
编程语言 时间:
2019-10-24 13:35:21
阅读次数:
123
继承 单继承和多继承 单继承:每个类只能继承一个类 多继承:每个类允许继承多个类 单继承和多继承的优缺点 单继承: 传承有序逻辑清晰语法简单隐患少 功能不能无限扩展,只能在当前唯一的继承链中扩展 多继承: 优点:类的功能扩展方便 缺点:继承关系混乱 菱形继承/钻石继承 多个子类继承自同一个父类,这些 ...
分类:
编程语言 时间:
2019-10-22 20:35:37
阅读次数:
114
装饰器模式 装饰器模式又称为包装(Wrapper)模式。装饰器模式以多客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。 http://www.wityx.com/post/240_1_1.html 装饰器模式的结构 通常给对象添加功能,要么直接修改对象添加相应的功能,要么派生子类来扩展,抑 ...
分类:
其他好文 时间:
2019-10-22 12:49:17
阅读次数:
62
下面代码中B继承了A,在new B对象时,首先执行A的无参构造,不管是new B的有参还是无参。 使用无参构造方法new B时,会执行B的无参构造方法;使用有参构造new B对象时,会执行B的有参构造方法 控制台打印为: ...
分类:
其他好文 时间:
2019-10-18 16:01:51
阅读次数:
83
[TOC] isinstance(obj,cls)和issubclass(sub, super) isinstance isinstance(obj,cls)检查obj是否是类cls的对象 包括继承关系 issubclass issubclass(sub, super)检查sub类是否是super类 ...
分类:
编程语言 时间:
2019-10-18 14:05:39
阅读次数:
78
1、为何空类的大小不是0呢? 为了确保两个不同对象的地址不同,必须如此。 类的实例化是在内存中分配一块地址,每个实例都有独一无二的内存地址。空类也会实例化,为保证空类实例化后的独一无二性,编译器会给空类隐含的添加一个字节。所以,空类的sizeof为1,而不是0. 2、继承关系中的类大小: case ...
分类:
其他好文 时间:
2019-10-15 20:44:19
阅读次数:
103
c++继承与派生 课题目标 学习声明和使用类的继承关系,声明派生类。 熟悉不同继承方式下对基类成员的访问控制。 课题引入 如何让一个类能直接调用另一个类的数据和函数。 我们常用类的友元来实现,但是友元关系并不能继承。基类的友元对派生类的成员没有特殊访问权限。 如果基类被授予友元关系,则只有基类具有特 ...
分类:
编程语言 时间:
2019-10-14 01:26:51
阅读次数:
178
多态:一个对象有多种形态 是方法的多态,和属性无关 有继承关系、重写方法、父类引用 指向 子类对象 静态方法不支持多态 举例, 有父类Dog,属性name="dog",普通方法say,静态方法move; 子类SDog,属性name="sdog",重写了普通方法say,重写了静态方法move,另外有自 ...
分类:
编程语言 时间:
2019-10-13 18:43:14
阅读次数:
80