软件构造总结1-Java中的多态
这几天做到关于多态的题目,对多态的各种类型还不是很清楚,所以总结一下Java中的各种多态。
多态的概念是指:同一个行为具有不同的表现形式或形态的能力,即对象多种表示形式的体现,多态一共分为三个类型,分别是特殊多态、参数化多态、子类型多态,下面对这三种类型的多态进行分析:
1.特殊多态:这种类型的多态指的就是方法的重载,在一个类当中,可以存在方法名相同,但是方法签名不同的方法,这样的情况就属于重载,对于一个方法名定义的行为,它可以有多种实现的方式,只需要保证方法的参数列表不同即可,这样做的好处就是不需要记忆很多的方法名字,Java中大量使用了这种重载的方式,特别要注意的是,父类型和子类型之间算做是不同的参数,一个传入父类型和一个传入子类型的两个名字相同的方法算做是Overload的方法,在调用时使用参数的引用类型进行静态编译匹配,具体的例子见下图:

2.参数化多态:Java中的泛型编程就是一种典型的参数化多态的例子,我们定义了一个泛型T,将泛型替换成不同的类型就会有不同的表现和行为,比如说List<String>和List<Double>就是分别表示一个字符串或是浮点数的列表,这样做的好处就是我们不需要对每一种对象都写一个实现类,而把其抽象成泛型,具体创建对象的时候在把泛型T替换成具体的对象,提高了程序的复用度。
3.子类型多态:这种多态更好的体现了多态的定义,这种多态指的是“is a”规则,任何一个子类型的对象都是一个父类型,或者表述成替换规则,程序中出现超类对象的任何地方都可以使用子类型进行替换,使用不同的子类型就会产生不同的表现或是行为,因为子类型可以Override父类型中的方法,重写的方法是在运行时根据对象的类型进行调用的。对象引用可以互相之间可以转换,使用interface可以判断一个对象是否属于某个类,下面是一个例子:

这就是Java中的三种类型的多态的总结,多态具有很多的优点,比如提高了程序的复用性、简化了程序的实现、提高了程序的效率等等,通过这次总结希望你对多态有了更深入的理解。
posted on 2022-06-06 23:47 renjie_master 阅读(51) 评论(0) 收藏 举报
浙公网安备 33010602011771号