精华笔记:
-
向上造型:——————————————–代码复用
-
超类型的引用指向派生类的对象
-
能点出来什么,看引用的类型—————-这是规定,记住就OK
何时向上造型:
-
多种角色能干的事都一样的时候,可以将多种角色统一造型到超类数组中,实现代码复用
eg: 学生/老师/医生都是输出名字+问好——干的事都一样,
就可以将学生/老师/医生统一造型到Person数组中,这样一个for即可——-代码复用
-
-
-
方法的重写(override/overriding):重新写、覆盖
- 发生在父子类中,方法名相同,参数列表相同
- 重写方法被调用时,看对象的类型———————–这是规定,记住就OK
- 重写需遵循”两同两小一大”原则:————————-了解,一般都是一模一样的
- 两同:
- 方法名相同
- 参数列表相同
- 两小:
- 派生类方法的返回值类型小于或等于超类方法的
- void和基本类型时,必须相等
- 引用类型时,小于或等于
- 派生类方法抛出的异常小于或等于超类方法的————————API时讲
- 派生类方法的返回值类型小于或等于超类方法的
- 一大:
- 派生类方法的访问权限大于或等于超类方法的————————明天讲
- 两同:
-
重写与重载的区别:———-常见面试题
- 重写:发生在父子类中,方法名相同,参数列表相同
- 重载:发生在同一类中,方法名相同,参数列表不同
笔记:
-
向上造型:——————————————–代码复用
-
超类型的引用指向派生类的对象
-
能点出来什么,看引用的类型—————-这是规定,记住就OK
何时向上造型:
-
多种角色能干的事都一样的时候,可以将多种角色统一造型到超类数组中,实现代码复用
eg: 学生/老师/医生都是输出名字+问好——干的事都一样,
就可以将学生/老师/医生统一造型到Person数组中,这样一个for即可——-代码复用
public class UploadDemo { public static void main(String[] args) { Aoo o1 = new Aoo(); o1.a = 1; o1.show(); //o1.b = 2; //编译错误 //o1.test(); //编译错误,超类不能访问派生类的 Boo o2 = new Boo(); o2.b = 1; o2.test(); o2.a = 2; //正确 o2.show(); //正确,派生类可以访问超类的 Aoo o3 = new Boo(); //向上造型 o3.a = 1; o3.show(); //o3.b = 2; //编译错误 //o3.test(); //编译错误,能点出来什么,看引用的类型 } } class Aoo{ int a; void show(){ } } class Boo extends Aoo{ int b; void test(){ } }
-
-
-
方法的重写(override/overriding):重新写、覆盖
-
发生在父子类中,方法名相同,参数列表相同
-
重写方法被调用时,看对象的类型———————–这是规定,记住就OK
class 餐馆{ void 做餐(){ 做中餐 } } //1)我还是想做中餐-----------------不需要重写 class Aoo extends 餐馆{ } //2)我想改做西餐-------------------需要重写 class Aoo extends 餐馆{ void 做餐(){ 做西餐 } } //3)我想在中餐基础之上加入西餐--------需要重写(先super中餐,再加入西餐) class Aoo extends 餐馆{ void 做餐(){ super.做餐(); 做西餐 } }
-
重写需遵循”两同两小一大”原则:————————-了解,一般都是一模一样的
-
两同:
- 方法名相同
- 参数列表相同
-
两小:
-
派生类方法的返回值类型小于或等于超类方法的
-
void和基本类型时,必须相等
-
引用类型时,小于或等于
//超类大,派生类小---------爸爸大,儿子小 class Coo{ void show(){} double test(){ return 0.0; } Student say(){ return null; } Person sayHi(){ return null; } } class Doo extends Coo{ //int show(){ return 1; } //编译错误,void时必须相等 //int test(){ return 0; } //编译错误,基本类型时必须相等 //Person say(){ return null; } //编译错误,引用类型时必须小于或等于 Student sayHi(){ return null; } //正确,Student小于Person }
-
-
派生类方法抛出的异常小于或等于超类方法的————————API时讲
-
-
一大:
- 派生类方法的访问权限大于或等于超类方法的————————明天讲
-
-
-
重写与重载的区别:———-常见面试题
- 重写:发生在父子类中,方法名相同,参数列表相同
- 重载:发生在同一类中,方法名相同,参数列表不同
补充:
-
继承要符合is(是)的关系
-
超类的意义:
- 封装共有的属性和行为———————-实现代码复用
- 为所有派生类提供了统一的类型———-向上造型(实现代码复用)
声明:本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。