A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Override和Overload的区别?
Override是方法重写:子类中出现了和父类中方法声明一模一样的方法。(静态方法不可以重写)
Overload是方法重载:本类中出现的方法名一样,参数列表不同的方法。

Override和Overload能改变返回值类型吗?
Override的返回值类型需要与父类一致。
overload可以改变返回值类型,只看参数列表。

多态中的题目分析题
A:看下面程序是否有问题,如果没有,说出结果
  1. class Fu {
  2.     public void show() {
  3.         System.out.println("fu show");
  4.     }
  5. }

  6. class Zi extends Fu {
  7.     public void show() {
  8.         System.out.println("zi show");
  9.     }

  10.     public void method() {
  11.         System.out.println("zi method");
  12.     }
  13. }

  14. class Test1Demo {
  15.     public static void main(String[] args) {
  16.         Fu f = new Zi();
  17.         f.method();
  18.         f.show();
  19.     }
  20. }
复制代码


答:程序出错,f中没有method方法,编译不通过

B:看下面程序是否有问题,如果没有,说出结果
  1. class A {
  2.     public void show() {
  3.         show2();
  4.     }
  5.     public void show2() {
  6.         System.out.println("我");
  7.     }
  8. }
  9. class B extends A {
  10.     public void show() {
  11.         show2();
  12.     }
  13.     public void show2() {
  14.         System.out.println("爱");
  15.     }
  16. }
  17. class C extends B {

  18.     public void show2() {
  19.         System.out.println("你");
  20.     }
  21. }
  22. public class Test2DuoTai {
  23.     public static void main(String[] args) {
  24.         A a = new B();
  25.         a.show();

  26.         B b = new C();
  27.         b.show();
  28.     }
  29. }
复制代码


答:正确
输出结果:爱
               你
分析:A a = new B();
        a.show();
编译时a有show方法,运行时调用B类的show方法(多态),B类不是没有show方法吗?其实是有的!B类由于继承A类,实际上也是继承了A类的show方法:
public void show() {
        show2();
    }
B类show方法中又调用show2方法,调用者是A类的引用a,因此编译时看的是调用A的show2方法,运行时调用的是B类的show2方法。

分析:B b = new C();
         b.show();
同样地,编译时B有show方法,运行时调用C类的show方法(多态),C类中super.show()又调用父类B的show方法,父类B的show方法中又调用show2方法,而由于我们的实际对象时C类的,因此编译时调用B类show2方法,运行时调用C类的show2方法(多态)

9 个回复

倒序浏览
不错 不错 收藏了  有空详细看
回复 使用道具 举报
这不视频里的题目么,
回复 使用道具 举报
过来看看先
回复 使用道具 举报
不错不错  很好
回复 使用道具 举报
了解了解
回复 使用道具 举报
写的不错  努力学习啊  
回复 使用道具 举报
satana 中级黑马 2016-5-24 22:47:44
8#
看看,学习学习
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
hmCEO 中级黑马 2016-5-24 23:04:42
10#
干货多发点,不错,加油啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马