java培训 第八天 笔记

java培训 第八天 笔记

ID:38072129

大小:66.50 KB

页数:4页

时间:2019-05-25

java培训 第八天 笔记_第1页
java培训 第八天 笔记_第2页
java培训 第八天 笔记_第3页
java培训 第八天 笔记_第4页
资源描述:

《java培训 第八天 笔记》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、1.方法的覆盖/重写(overwrite)定义:子类中存在一个与父类中同名、同参、同返回值的方法,称为子类中该方法/覆盖了父类的方法定义:l两个方法的形参如果不同,不是重写,而是一种变相的重载。l覆盖的两个方法返回值必须相同l子类中方法的访问权限修饰符必须不低于父类中被覆盖的方法classBase{voidf1(){}//1是2的重载方法voidf1(intx){}//2是1的重载方法}classChildextendsBase{voidf1(inty){}//3是2的重写方法,1的变相的重载}2.对象的构建过程:Coderc1=newCoder();要构建Coder对象à先构建Em

2、ployeeà先构建一个Object对象继承的本质:为什么子类对象中有父类的成员——子类对象体内有一个完整的父类对象,且构建子类对象前,先构建了父类对象Employeee1=newCoder();子类的对象赋值费父类的引用是合法的!Coderc1=newEmplyee();父类的对象赋值给子类的引用是非法的!e1.work;调用的是Coder的work()方法——不看引用看对象e1.playGame()编译错误——不能通过父类的引用调用子类所特有的方法3.Java中实现多态(一个方法、多种运行的结果)的两种方式(1)编译时多态:在编译时根据实参列表就已经决定了要调用哪个重载的方法——

3、方法的重载(2)运行时多态:只有到运行时,根据对象的类型,才能决定调用哪个方法——方法的覆盖4、this和superThis,是一个万能的引用,指向JVM当前正在处理的对象(而不管该对象是什么类型)Super也是一个万能的引用,指向JVM当前正在处理的对象体内的直接父类对象this的两种用法(1)在任意方法中,this.属性或者this.方法()调用JVM所处理的当前对象的成员(2)在构造方法中的第一句,this()调用本类的其他构造方法super的两种用法(1)在任意方法中,super属性或者super方法()调用JVM所处理的当前对象的成员(2)在子类构造方法的第一句,super

4、(),来调用父类的构造方法——如果程序员没写这句话,且该构造方法第一句也没有this(),则编译器自动添加一句super()的调用5、staticfinalFinal关键字的三种用法(1)final修饰变量,则此变量变为常量①方法内的局部变量声明为final则子类赋值一次②类的属性修饰为final则必须在定义时或构造方法中赋初值,且以后再也不能赋值了③常量引用只能指向一个固定的对象(即地址值不能再改变),但该对象体内的属性值可以修改(2)Final修饰方法,则此方法不能被子类重写/覆盖(3)Final修饰类,则最终类不能被继承Static关键字的五种用法:(1)static修饰属性,

5、JVM第一次创建某类的对象时,会将该类的定义从.class文件中加载到内存中(任何类的定义都是加载且仅加载一次),此时JVM会扫描定义,抽取出其中的静态属性和静态方法,保存到“静态内存空间”中去,此后再在堆中创建所需的对象,但每个堆对象中只有非静态的属性和方法——及静态成员在内存中只有一份,而非静态成员每个对象中都有一份。所以:访问非静态成员,必须通过对象的引用;而访问静态成员则通过类名。(2)static修饰方法,静态方法最好通过类名来调用,且静态方法中不能访问非静态成员提示:static不能修饰方法内的局部变量和类(3)static修饰内部类(4)静态代码块(5)静态导入6、抽象

6、方法和抽象类编程过程中,会遇到“某个类应该提供某个方法、但却无法提供此方法的实现”,如图形类的计算面积方法、员工的工作方法——可以将这样的方法的具体的方法体(大括号)去除,然后再声明为抽象方法抽象方法所在的类,必须声明为抽象类。由此可见,抽象方法和抽象类是“被逼的”。抽象类类似于“未完成的图纸”,所以抽象类不能创建对象,即不能实例化——抽象类的构造方法不能被new关键字调用,可以被子类的构造方法调用。但可以将一个抽象类的非抽象子类的对象赋值给一个抽象的引用说明:抽象类中可以没有抽象方法Eclipse调试:Stepinto进入stepover跳过stepreturn返回作业:1、抽象类

7、和接口的异同(十处以上):AbstractclassInterface1都属于class2抽象类可以有自己的数据成员,也可以有非抽象的成员方法接口中只能够有静态的不能被修改的数据成员3子类只可以继承一个抽象类/类却能实现多个接口4在抽象类的定义中,我们可以赋予方法的默认行为在接口的定义中,方法却不能拥有默认行为5抽象类在Java语言中体现了一种继承关系,要想使得继承关系合理,父类和派生类之间必须存在"isa"关系,即父类和派生类在概念本质上应该是相同的(i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。