Java面向对象接口,多态

41 篇文章 0 订阅

1.接口的多实现

①子类进行多接口实现时,如果接口常量没有重名,可以按照之前的方式进行使用,如果接口常量出现重名,就必须通过接口名来调用常量

②子类进行多接口实现时,接口中有多个抽象方法时,实现类必须重写所有抽象方法。如果抽象方法有重名的,只需要重写一次

③子类进行多接口实现时,接口中存在同名的静态方法并不会冲突,因为只能通过各自接口名访问静态方法

④接口中有多个默认方法时,实现类都可以选择继承使用。如果默认方法有重名的,必须重写一次

⑤当一个类既继承一个父类,又实现若干接口时,父类的成员方法与接口中的默认方法重名,子类就近选择执行父类的成员方法。

2.接口比较器

当我们使用自定义类型数组进行排序时,会发现报出ClassCaseException异常,原因是自定义数据类型不知道如何比较大小

在JDK中,内置了两种方式可供我们进行大小的比较(支持任意数据类型)

①comparable(内置比较器)

在原类的基础上实现comparable接口,会修改原类

具体:1.重写compareTo方法

        2.实现implements comparable<User>

        Arrays.sort(users);

②comparator(外置比较器)

新建一个比较器类,实现comparator接口,不会改变原类

具体:1.重写compare方法

           2.新建一个类,实现implements comparator<User>

        Arrays.sort(users,new MyComparator());

3.模板设计模式

定义一个操作中的算法骨架,将通用步骤以模板形式封装在父类模板中,将具体细节步骤延迟到子类中实现。

案例:将物品放入冰箱,需要几步

①打开冰箱 ②将物品放入 ③关上冰箱

4.多态

多态是面向对象三大特征之一

4.1多态是指同一行为,不同的事物具有多个不同表现形式。

例如:猫的移动和蛇的移动是不一样的

4.2多态的分类

①编译时多态:重载

②运行时多态:在运行时,同一行为,可以有不同的表现形态

4.3运行时多态

要有的条件:①重写

                        ②父类引用指向子类对象(向上转型)

                例:父类数据类型 变量名 = new 子类数据类型();

                        ③继承

4.4多态的好处

        使用多态可以使程序具有更好的扩展性

4.5多态时成员属性的特征

1.成员变量:编译时看左边(父类),运行时看左边(父类)

2.实例方法:编译时看左边(父类),运行时看右边(子类)

3.静态方法:编译时看左边(父类),运行时看左边(父类)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值