zoukankan      html  css  js  c++  java
  • Java方法的多态

    方法的多态

    • 重载。方法名相同,其他可以不同
    • 重写。父类子类的方法名相同。访问权限不能更小

    重写:

    • 继承了父类
    • 父类方法不能满足
    • 子类、父类这个方法的方法名相同
    • 参数相同
    • 返回类型相同
    • 访问权限不能更小
    • 抛出的异常不能更大

    一、多态

    Animal bird2 = new Bird("2niao", 4);
    bird2.sing();
    

    bird2.sing(),由于bird2被定义为是Animal类型,而Animal类型是没有sing() 这个方法的,因此会报错。解决办法是,把这个bird2强制转换成Bird类型。

    ((Bird)bird2).sing();
    

    可以先用 isinstanceof来进行判断

    二、重写父类

    父类引用调用子类对象,是用的子类的方法。

    Dog类,Bird类都有eat()方法,他们都继承了Animal类,于是就重写了父类的方法。

    Animal bird3=new Bird("niao3", 23);
    bird3.eat();
    

    即使bird3被定义为Animal类型,eat()依然输出:

    niao3正在吃虫子

  • 相关阅读:
    shiro之cache问题
    SpringMVC关于请求参数乱码问题
    js递归错误
    说说Javac
    说说CDN
    谈谈HTTP
    谈谈Ajax(二)
    谈谈Ajax(一)
    记一次关于SSM框架的使用错误
    MP实战系列(十四)之分页使用
  • 原文地址:https://www.cnblogs.com/heenhui2016/p/10963278.html
Copyright © 2011-2022 走看看