软件构造.Interface,overridding,Abstract Methods, Abstract Classes,Polymorphism(接口,抽象方法,抽象类,多态)

其他内容

如果静态方法要使用泛型的话,必须将静态方法也定义成泛型方法 。
Java中的子类型一定要确保其规格说明不弱于超类型
尽可能避免用 instanceof,特别是在超类中检查某个对象是否是其子类的对象
构造方法在初始化时,尽可能 的完成数据的初始化设置
避免可以重新初始化的方法

Interface

一个类可以 实现多个接口,展现多个视图,是对Java不支持多继承的一种补偿
An interface can extend one or more other interfaces
A class can implement multiple interfaces

Interfaces in Java cannot contain constructors, they must directly call one of the concrete class’ constructors.
for example
在这里插入图片描述
调用者理解ADT时只需要理解接口即可
抽象数据类型的多个不同表示可以共存于同一个程序中, 作为实现接口的不同类。

overridding

super:子类中可以通过super关键字调用父类中被重写的方法
eg
在这里插入图片描述
The subclass can only add new methods to the superclass, it cannot overwrite them
If a method cannot be overwritten in a Java program, it must be prefixed with the keyword final.

Abstract Methods

Abstract method: 只有定义没有实现
Abstract class:
抽象类不能实例化
继承某个抽象类的子类在实例化时,所有父类中的 抽象方法必须已经实现

Polymorphism

Polymorphism : 多态性是指为不同类型的实体提供一个接口,或者使 用一个符号来表示多个不同的类型

1.重载:(函数名同但是函数签名不同)一个函数可以 有多个同名的实现
2.泛型:(一个类对应着多个实现)一个类型名字可 以代表多个类型(泛型编程) eg List中的ArrayList和LinkedList
3.一个变量名字可以代表多个类的实例( 子类型)
在这里插入图片描述
在这里插入图片描述

!!!上面的例子的第三条和最后一条!!!父类形的对象a如果被赋值为 子类形的对象b 的话 b中多出来的方法a不具备,但是a,b中都有的方法则默认优先使用子类的(重写)

eg
在这里插入图片描述
上面第二个例子是错的,因为后面比前面更宽松。但是第三个前面比后面更宽松是可以兼容的。或者使用AreayList是List的一种具体实现来理解

猜你喜欢

转载自blog.csdn.net/qq_41359808/article/details/89004124