关于软件构造3.4节的学习总结

Posted benecho

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于软件构造3.4节的学习总结相关的知识,希望对你有一定的参考价值。

类成员变量和类方法:出现在类中,但不与实例挂钩。

实例成员变量:不是类成员变量

实例方法:不是类方法

静态方法和静态变量是在初始化的时候就已经生成了,不需要再进行new就可以访问调用,但是静态方法没办法调用非静态成员

 

接口是没有构造函数的,new时需要知道这个接口的某个具体实现类的名字。

private,default,protected,public分别为在当前类可访问调用,在同一个包里,在它的子孙类(不同包),其他包。

父类中的方法可以被子类继承。

严格继承:用了final修饰则子类只能添加新方法而无法重写超类中的方法,。

重写的函数(Override)具有完全相同的signature,实际执行时调用哪个方法是运行时动态决定的

如果想在不修改父类某方法的基础上增加该方法的功能,可以使用super

构造函数也可以super,但是要求必须放在子类构造函数的第一行

重写的时候要用@Override进行修饰,这样编译器会检查覆盖方法和被覆盖的方法签名是否完全一致

重写的方法可见性只能保持相同或者扩大而不能缩小

 

抽象方法只有定义没有实现,且要用abstract进行修饰。

抽象类不能实例化,且必须包含至少一个抽象方法,如果所有都是抽象方法那就是接口。继承某个抽象类的子类在实例化时,所有父类中的抽象方法必须已经实现

 

特殊多态:一个方法可以有多个同名的实现(方法重载)

参数化多态:一个类型名字可以代表多个类型(泛型编程)

子类型多态、包含多态:一个变量名字可以代表多个类的实例(子类型)

 

重载是根绝参数列表进行最佳匹配的,重载的多个版本之间必须有不同的参数列表,进行静态类型检查,在编译阶段时决定要具体执行哪个方法。

重载也可以发生在父类和子类之间。

以上是关于关于软件构造3.4节的学习总结的主要内容,如果未能解决你的问题,请参考以下文章

哈工大软件构造复习——LSP原则,协变和逆变

软件构造第七章第一节 健壮性和正确性的区别

软件构造期末复习考点总结

软件构造复习——关于Java中的正则表达式

HIT软件构造课程3.1总结(data type and type checking)

软件构造复习——关于Git的一点复习