多态有三要素 继承、方法重写、父类引用指向子类对象 多态可以理解成两个部分:一个是编译时,一个是运行时 编译时:定义规则;运行时:具体实现这个规则。 编译时:把父类强制转换成子类不会报错;运行时:先去父类找这个方法找到后再看子类有没有重写这个方法如果没有这调用父类的,否则调用子类重写的方法; 编译时 ...
分类:
编程语言 时间:
2018-02-25 11:17:22
阅读次数:
143
类的声明和实例化 继承 代码的抽象和代码的复用 原型链继承 问题1:一是字面量重写原型会中断关系,使用引用类型的原型, 问题2:子类型还无法给父类型传递参数 构造函数继承 组合继承 组合继承改进 ES6 多态 就是子类重写父类的属性或者方法 super关键字 使用 第一种情况,super作为函数调用 ...
分类:
其他好文 时间:
2018-02-24 23:13:24
阅读次数:
327
子类初始化顺序 Designated, Convenience, Required required init: 希望子类中一定实现的designated init,required强制子类重写init方法,可以保证父类的convenience init可以使用 class ClassA { ... ...
分类:
编程语言 时间:
2018-02-22 21:32:27
阅读次数:
191
一、final关键字 继承的出现提高了代码的复用性,并方便开发。但随之也有问题,有些类在描述完之后,不想被继承,或者有些类中的部分方法功能是固定的,不想让子类重写。可是当子类继承了这些特殊类之后,就可以对其中的方法进行重写,那怎么解决呢? 要解决上述的这些问题,需要使用到一个关键字final,fin ...
分类:
编程语言 时间:
2018-02-05 14:29:03
阅读次数:
199
*********************************************** package com.xdf.demo; /** * 由 abstract修饰的方法 > 》抽象方法 * 01.必须位于抽象类中 * 02.必须没有方法体 * 03.必须被子类重写,除非子类也是抽象类 ...
分类:
其他好文 时间:
2017-12-11 11:23:10
阅读次数:
131
super关键字:解决当子类重写父类对象方法后,子类对象无法访问父类的成员1,调用父类成员变量和方法 super.成员变量 super.成员方法([参数1,参数2.......])Example: 2,super调用父类的构造方法 super([参数1,参数2.......])Example 补充 ...
分类:
其他好文 时间:
2017-12-10 13:03:00
阅读次数:
190
举例: 父类:Person{} 子类:Child extends Person{} 父类的引用指向子类的对象:Person p = new Child(); 理解:在编译期认为p是父类的对象,在运行期认为p是子类的对象 ////////////////////子类执行方法的情况: 1.子类重写了父类 ...
分类:
其他好文 时间:
2017-12-03 16:30:33
阅读次数:
173
抽象类是一种不能被实例化的类,只能作为其他类的父类来使用。 抽象类是通过关键字abstract来声明的。 抽象类与普通类相似,都包含成员变量和成员方法,两者的区别在于,抽象类中至少要包含一个抽象方法, 抽象方法没有方法体,该方法天生就是要被子类重写的。 抽象方法的格式为:Abstract funct ...
分类:
其他好文 时间:
2017-12-01 22:12:51
阅读次数:
123
1)CharSequence接口重新定义了toString()方法,这就要求实现类必须重写object中的toString()方法 我们在实现时,如果定义接口时,我们对Object类中的一些方法不满意是,可以在接口中要求子类重写。 ...
分类:
编程语言 时间:
2017-11-26 12:46:51
阅读次数:
240
前提:必须有类继承或接口实现 方法的重写:父类或接口 变量名 = new子类或实现类对象(); 变量,方法 调用的方法是子类重写的方法 结论: 方法:编译看左边,运行看右边 变量:编译看左边,运行看左边 好处:可以无限的扩展子类 弊端:只能调用子父类的共有内容,不能调用子类的特有内容. ...
分类:
其他好文 时间:
2017-11-21 23:56:16
阅读次数:
164