cglib实现原理:生成被代理对象的子类,使用ASM字节码技术重组来重写父类(被代理对象)的方法。生成的这个新对象,可以强制转换为被代理对象。也就是子类引用赋值给父类! 案例编写: 1. 导入cglib依赖包 2. 实现cglib动态代理类 3. 创建被代理类 4. 测试 ...
分类:
其他好文 时间:
2018-11-28 19:41:25
阅读次数:
103
向上造型 意思为 子类引用的对象转换为父类类型 例如 A 是B的父类 A a = new B(); 向上造型后 子类 将不再具备其自己定义的方法,只有父类的方法。但若重写了父类的方法,向上造型的对象的方法为重写后新的方法。 向下造型:父类引用的对象转换为子类类型。但是对于父类的引用对象一定要是由子类 ...
分类:
编程语言 时间:
2018-11-24 18:03:09
阅读次数:
203
第三章 多态 本章需要掌握的东西 答:多态的优势可以减少代码量,更加清晰明了。,应用场合为,一个事物需要做多种事情的时候需要用到多态。 2.掌握父类和子类之间的类型转换 答:父类引用转向子类为向上转型,自动类型转换。子类引用转向父类为向下类型转换,需要强制转换。 3.掌握instanceof运算符的 ...
分类:
其他好文 时间:
2018-10-08 23:22:09
阅读次数:
300
子类继承父类,子类构造器会默认调用super()(无论构造器中是否写有super()),用于初始化父类成员.同时当父类中存在有参构造器时,必须提供无参构造器,子类构造器中并不会自动继承有参构造器,仍然默认调用super(),使用无参构造器。 PS:构造器是无法被继承的,所以不能重写,但是可以重载。 ...
分类:
其他好文 时间:
2018-08-24 10:51:22
阅读次数:
178
1. 继承与重写run方法 我们封装了Thread类,并设置成员函数run()为纯虚函数,因此我们使用类继承,并重写run方法: 如果用多态的话,可以用vector来保存父类指针,并初始化指向子类引用,不过使用vector<Thread*>我们时常会有困惑,那就是vector作为栈上变量,其程序结束 ...
分类:
编程语言 时间:
2018-07-26 19:59:25
阅读次数:
128
1.数据类型 数据类型(data type)是一个值的集合和定义在这个值集上的一组操作的总称。 原子类型:如语言的整形、字符型等标准类型及指针等简单的导出类型和空类型。 结构类型:其值是由若干成分按某种结构组成的,因此是可以分解的,并且它的成分可以是非结构的,也可以是结构的,通常是由标准类型派生的。 ...
分类:
其他好文 时间:
2018-06-17 17:58:43
阅读次数:
219
转型是在继承的基础上而言的,继承是面向对象语言中,代码复用的一种机制,通过继承,子类可以复用父类的功能,如果父类不能满足当前子类的需求,则子类可以重写父类中的方法来加以扩展。 向上转型:子类引用的对象转换为父类类型称为向上转型。通俗地说就是是将子类对象转为父类对象。此处父类对象可以是接口 向下转型: ...
分类:
编程语言 时间:
2018-06-14 18:38:54
阅读次数:
127
###01接口的概念 * A:接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”。 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成。这样将功能的定义与实现分离,优化了程序设计。 请记住:一切事物均有功能,即一切事物均有接 ...
分类:
其他好文 时间:
2018-06-01 01:00:38
阅读次数:
148
可修饰:类及类的成员、成员变量、局部变量,不能修饰构造方法 final修饰的类不能被继承但可以继承其他的类 final修饰的类不能被重写和继承,子类修改的方法可以加继承 final修饰的局部变量和成员变量只能被调用不能修改,只能赋值一次,终身不变。 final Person p = new Pers... ...
分类:
其他好文 时间:
2018-05-22 12:54:18
阅读次数:
166
1.向上转型 把子类引用当作父类引用。(子类对象赋值给父类引用) 2.绑定 确定方法属于哪个类。 3.前期绑定 程序执行前绑定。 4.后期绑定也叫动态绑定 程序运行时绑定。 5.构造器和多态 5.1 域 与静态方法(包括构造器)不具有多态性。 5.2 构造器内可以多态,调用子类中被覆写的方法,但不安 ...
分类:
编程语言 时间:
2018-05-15 13:22:57
阅读次数:
198