|登录 |注册

查看: 2363|回复: 13
打印 上一主题 下一主题

请大大解释java问题

[复制链接]
loonloon
2010-7-20 07:22 PM
  1. public class A {
  2.     void m1(A a){
  3.         System.out.print("A");
  4.     }
  5. }
复制代码
  1. public class B extends A {
  2.      void m1(B b){
  3.         System.out.print("B");
  4.     }
  5. }
复制代码
  1. public class C extends B {
  2.     void m1(C c){
  3.         System.out.print("C");
  4.     }
  5. }
复制代码
  1. public class D extends C {
  2. void m1(D d){
  3.         System.out.print("D");
  4.     }
  5.     public static void main(String[] args) {
  6.         // TODO code application logic here
  7.         A a1 = new A();
  8.         B b1 = new B();
  9.         C c1 = new C();
  10.         D d1 = new D();

  11.         d1.m1(a1);
  12.         d1.m1(b1);
  13.         d1.m1(c1);
  14.     }
  15. }
复制代码
最后的output 是 ABC,但是我不是很清楚怎样运作. 谢谢各大大解析
03-342
2010-7-20 07:32 PM
仁兄,请问你现在在学J2SE吗?
loonloon
2010-7-20 07:39 PM
我还在初学当中
宅男-兜着走
2010-7-20 07:40 PM
最后的output 是 ABC,但是我不是很清楚怎样运作. 谢谢各大大解析
loonloon 发表于 2010-7-20 07:22 PM


你的 Class 内

  1. public class A {
  2.     void m1(A a){ // 我不理解你 Pass进 Class A 过后, 却没用 A。 你大可不必有这个 Parameter。 直接改成。
  3.         System.out.print("A");
  4.     }
  5. }

  6. // 这样。

  7. public class A {
  8.     void m1(){
  9.         System.out.print("A");
  10.     }
  11. }
复制代码

  1. public static void main(string[] args)
  2. {
  3. A  a = new A();
  4. a.mi();
  5. //基本上就能了。
  6. }
复制代码
imCobRa
2010-7-20 07:52 PM
楼主你用的是method
然后有inheritances class的attribute
第一个就是代表会出现A
第二个就是出现B
第三个就是会出现C
第四个就是说第四个拥有C的特征(class D extends C )
        A a1 = new A();
        B b1 = new B();
        C c1 = new C();
        D d1 = new D();
这四个就是declare 出来...
d1.m1(a1);
        d1.m1(b1);
        d1.m1(c1);
这三个是output
d1.m1就是说m1里面的d1,挂号里面的a1,b1,c1就是要display的东西
放在你的第一第二第三个code
void m1(A a){
        System.out.print("A");
大致上就是这样,希望你会明白
loonloon
2010-7-20 07:54 PM
谢谢, 宅男-兜着走,但是我想知道当 object reference a1, b1, c1, d1 pass into
d1.mi(a1);
d1.mi(b1);
d1.mi(c1);
为什么会是 ABC
imCobRa
2010-7-20 07:56 PM
回复 4# 宅男-兜着走


    如果要更简单,就declare好东西在上面,不要用method直接
System.out.println("你要的东西");
就好了= =
不过这位大大的做法也对,不过类似好像比较旧的写法
宅男-兜着走
2010-7-20 07:59 PM
回复  宅男-兜着走


    如果要更简单,就declare好东西在上面,不要用method直接
System.out.printl ...
imCobRa 发表于 2010-7-20 07:56 PM


更简单就是。
System.out.print("ABC" );
就好了。

== 什么Class 都不必写, 初学来说, 学Java 已经绕了一大圈。
imCobRa
2010-7-20 07:59 PM
回复 6# loonloon


     A a1 = new A();
        B b1 = new B();
        C c1 = new C();
        D d1 = new D();
你自己写了啊,你把上面的
class A {
    void m1(A a){
        System.out.print("A");
a1就会display"A"出来啊
d1.mi(a1);
d1.mi(b1);
d1.mi(c1);
这个d1继承了前面的东西,所以就能跑class的啊
imCobRa
2010-7-20 08:00 PM
回复 8# 宅男-兜着走


    哈哈,你这句赞!
直接给一个SOP= =
您需要登录后才可以回帖 登录 | 注册

JBTALKS.CC |联系我们 |隐私政策 |Share

GMT+8, 2025-3-11 02:57 AM , Processed in 0.135439 second(s), 25 queries .

Powered by Discuz! X2.5 © 2001-2012 Comsenz Inc.

本论坛言论纯属发表者个人意见,与本论坛立场无关
Copyright © 2003-2012 JBTALKS.CC All Rights Reserved

Dedicated Server powered by iCore Technology Sdn. Bhd.

合作联盟网站:
JBTALKS 马来西亚中文论坛 | JBTALKS我的空间 | ICORE TECHNOLOGY SDN. BHD.
回顶部