小结
*普通类多态 (基本不用)
父类是一个普通类
*抽象类多态 (常用)
父类是一个抽象类
*接口多态 (最常用)
左边是一个接口,右边是该接口的实现类对象
*类和接口的关系
*类和类之间的关系
继承关系,可以单继承,不能多继承,但是可以多层继承
*类和接口之间的关系
实现关系,可以单实现,也可以多实现
还可以继承一个类的同时,再实现多个接口,多个接口之间使用逗号隔开
*接口和接口之间的关系
继承关系,可以单继承、也可以多继承
*抽象类和接口的区别
*成员区别
抽象类:变量、常量、构造方法、普通方法、抽象方法
接口:常量、抽象方法
*关系区别
类和类:继承关系,单继承
类和接口:实现关系,单实现、多实现
接口和接口:继承关系,单继承、多继承
*设计理念区别
抽象类:完成的是一些共性功能的抽取 共性功能
接口:完成的是一些特性功能的抽取 额外、特有功能
多态中的形参和返回值
*类名作为形参和返回值
(1)类名作为形参
*方法的形参是类名,其实需要的是该类的对象、或者其子类对象(多态)
*实际传递的是该对象的【地址值】
(2)类名作为方法的返回值
方法的返回值是类名,其实返回的是该类的对象、或者其子类对象(多态)
实际传递的,也是该对象的【地址值】
*抽象类名作为形参和返回值
//和上面的普通类对比,没有该类的对象是因为抽象类不能直接创建对象
(1)抽象类名作为形参
*方法的形参是抽象类名,其实需要的是子类对象(多态)
(2)抽象类名作为返回值
*方法的返回值是抽象类名,其实需要的是子类对象(多态)
*接口名作为形参和返回值
(1)接口名作为方法形参
*方法的形参是接口名,其实需要的是该接口的实现类对象、或者该接口的实现类的子类对象
(2)接口名作为方法的返回值
*方法的返回值是接口名,其实需要的是该接口的实现类对象、或者该解扣子的实现类的子类对象
总结:引用类型作为形参或者返回值,传入的是小于等于该类型的对象
转载:https://blog.csdn.net/AimengX/article/details/104413071
查看评论