《Java程序设计》第四周学习总结

教材学习内容总结

第五章主要内容

子类的继承性

子类和父类如果在同一包中除private外其余都继承

子类和父类如果不在同一包中那么只继承public和protected

继承关系的UML图起始端是子类的UML图,终端是一个三角符号表示实线的结束。

掌握成员变量的隐藏和方法重写

用关键字super,子类一但隐藏了继承的方法和关键字,如果想要调用关键字就需要调用super关键字。

final关键字,final类不能被继承,如果用final类修饰一个方法呢么就不允许对他进行重写不允许子类隐藏可以继承的final方法。

对象的上转型方法,将一个子类上转,使得上转型对象可以使用继承和隐藏的变量和方法,不能调用子类新增的方法,也调用子类继承的方法或者重写的实例方法。

通过方法重写可以隐藏继承的方法,一个上转型对象在调用的时候可能有多种形态,因为不同的子类再重写父类的方法时可能有不同的行为。这就时多态。

 

abstract类和abstract方法。对于abstract方法只需申明不许实现,不允许使用final和static与abstract方法同时修饰一个方法或类。

abstract方法当中可以有abstract方法,也可以有非abstract方法。非abstract类当中不能有abstract方法。

abstract类不能有new运算创建对象。

教材学习中的问题和解决过程

在本周答题的过程当中遇到如下问题。

问题一:对instanceof不了解。

问题一解决方法:博客链接https://www.cnblogs.com/zjxynq/p/5882756.html。

注意事项,instanceof在Java的编译状态和运行状态是有区别的:

在编译状态中,class可以是object对象的父类,自身类,子类。在这三种情况下Java编译时不会报错。

在运行转态中,class可以是object对象的父类,自身类,不能是子类。在前两种情况下result的结果为true,最后一种为false。但是class为子类时编译不会报错。运行结果为false。

问题二:“子类在重写可以继承的方法时,可以完全按照自己的意图编写新的方法体。重写方法的类型可以是父类方法类型的子类型,不必完全一致。”不理解

问题二解决方法:书上的Example5_6.java说明了Object可以用Integer类重写。

代码托管:

 

上周考试错题

29、关于下列Dog类的叙述,错误的是

class Dog {
     Dog(int m){ 
     }
     Dog(double  m){ 
     }
     int Dog(int m){ 
        return 23;
     }
     void Dog(double m){
     }
}

A .Dog(int m)与Dog(double m)互为重载的构造方法。

B .int Dog(int m)与void Dog(double m)互为重载的非构造方法。

C .Dog类只有两个构造方法,而且没有无参数的构造方法。

D .Dog类有3个构造方法。

我的选择:C

答案:D

原因:没有搞清楚重载的意义。

 

总结

本周的Java学习已经渐渐的让我明白了Java的面向对象性与高效性和容易修改的特性是为什么了,但是我只是触及到了一点皮毛,在之后的日子里我一定要向大神多多学习,以让我的Java编辑水平达到一个新的高度。

posted @ 2019-03-24 20:34  20175330杨璟旭  阅读(207)  评论(0编辑  收藏  举报