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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 夏夜猫 中级黑马   /  2013-8-26 21:55  /  832 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 夏夜猫 于 2013-8-28 21:30 编辑

关于调用,比如类A继承(或实现)类(接口)B,
A a = new A;    A a = new B;    B b =new A;   B b =new B;
a.A;    a.B;    b.A;    b.B;
这些组合在一起时究竟该怎么用呢?或者说,不同的组合,运行的结果分别是什么呢?


以上疑问是我之前一个帖子:

求关于多态中声明、访问、调用的理解和方法
http://bbs.itheima.com/thread-78632-1-1.html

中没解决的问题,今晚想把这些东西攻克,明天开始上课上新的内容了,求大神解答。。{:soso_e183:}

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

1 个回复

倒序浏览
看这个是否对你有帮助

public class ExtendsDemo {
/**
  * @param args
  */
public static void main(String[] args) {
  A a=new A();//只能调用父类方法
  a.getA();
  System.out.println("A a=new A():"+a.i);//10
  
  System.out.println("-----------");
  A a1=new B();
  a1.getA();
  System.out.println("A a1=new B():"+a1.i);//10
  
  System.out.println("-----------");
  A b=new A();
  b.getA();
  System.out.println("A b=new A():"+b.i);//10
  
  System.out.println("-----------");
  B b1 =new B();
  b1.getB();
  b1.getA();
  System.out.println("B b1 =new B():"+b1.i);//20
}
}
class A{
public int i=10;
A(){
  System.out.println("这是父类的构造器");
}
public void getA(){
  System.out.println("这是父类的方法");
}
}
class B extends A{
public int i=20;
B(){
  System.out.println("这是子类的构造器");
}
public void getB(){
  System.out.println("这是子类的方法");
}
public void getA(){
  System.out.println("这是子类重写父类的方法");
}
}


输出结果:
这是父类的构造器
这是父类的方法
A a=new A():10
-----------
这是父类的构造器
这是子类的构造器
这是子类重写父类的方法
A a1=new B():10
-----------
这是父类的构造器
这是父类的方法
A b=new A():10
-----------
这是父类的构造器
这是子类的构造器
这是子类的方法
这是子类重写父类的方法
B b1 =new B():20

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马