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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 陈胜 于 2016-2-19 23:33 编辑

大家新年快乐!!!     与大家分享四道多态方面的试题
1...
class test {
public static void main(String[] args) {
  Fu f = new Zi();  
  Zi z = (Zi)f;  
  f.show();
  z.show();
  System.out.println(f.output);
  System.out.println(z.output);
}
}
class Fu {
public  String output="1";
public void show(){
  output+=1;
}
}
class Zi extends Fu{
public  String output="1";
public void show(){
  output+=3;
}
}
2...
class test {
public static void main(String[] args) {
  Fu f = new Zi();  
  Zi z = (Zi)f;  
  f.show();
  z.show();
  System.out.println(f.output);
  System.out.println(z.output);
}
}
class Fu {
public  String output="1";
public void show(){
  output+=1;
}
}
class Zi extends Fu{
public void show(){
  output+=3;
}
}
3...
class test {
public static void main(String[] args) {
  Fu f = new Zi();  
  Zi z = new Zi();
  f.show();
  z.show();
  System.out.println(f.output);
  System.out.println(z.output);
}
}
class Fu {
public  String output="1";
public void show(){
  output+=1;
}
}
class Zi extends Fu{
public  String output="1";
public void show(){
  output+=3;
}
}
4...
class test {
public static void main(String[] args) {
  Fu f = new Zi();  
  Zi z = new Zi();
  f.show();
  z.show();
  System.out.println(f.output);
  System.out.println(z.output);
}
}
class Fu {
public  String output="1";
public void show(){
  output+=1;
}
}
class Zi extends Fu{
public void show(){
  output+=3;
}
}

评分

参与人数 1黑马币 +2 收起 理由
洋葱头头 + 2

查看全部评分

30 个回复

倒序浏览
同学给出的题   都做出来  多态这也就不糊涂了
回复 使用道具 举报
不明白啊。Zi z = (Zi)f; 是讲父类转换为为子类?
回复 使用道具 举报
过年人少 谢谢分享
回复 使用道具 举报
renkuo023 发表于 2016-2-8 17:46
不明白啊。Zi z = (Zi)f; 是讲父类转换为为子类?

是的,这是向下转型。是对象的转型
回复 使用道具 举报
我来看看
回复 使用道具 举报
DDK畅 中级黑马 2016-2-10 06:53:42
7#
晕了,虽然刚学完 但是还是不太明白
回复 使用道具 举报
求详细解答
回复 使用道具 举报
1...
class test {
public static void main(String[] args) {
  Fu f = new Zi();                 
  Zi z = (Zi)f;                    
  f.show();                        
  z.show();                        
  System.out.println(f.output);     
  System.out.println(z.output);   
}                                //上面的输出1
}                                //下面的打印出 133
class Fu {
public  String output="1";
public void show(){
  output+=1;
}
}
class Zi extends Fu{
public  String output="1";
public void show(){
  output+=3;
}
}
2...
class test {
public static void main(String[] args) {
  Fu f = new Zi();  
  Zi z = (Zi)f;  
  f.show();       //output=13
  z.show();         //  output=133
  System.out.println(f.output);    //打印   output=133
  System.out.println(z.output);      //打印output=133
}
}
class Fu {
public  String output="1";
public void show(){
  output+=1;
}
}
class Zi extends Fu{
public void show(){
  output+=3;
}
}
3...
class test {
public static void main(String[] args) {
  Fu f = new Zi();  
  Zi z = new Zi(); 
  f.show();     
  z.show();
  System.out.println(f.output);                   //打印1
  System.out.println(z.output);             //打印13
}
}
class Fu {
public  String output="1";
public void show(){
  output+=1;
}
}
class Zi extends Fu{
public  String output="1";
public void show(){
  output+=3;
}
}
4...
class test {
public static void main(String[] args) {
  Fu f = new Zi();    
  Zi z = new Zi(); 
  f.show();
  z.show();
  System.out.println(f.output);   //打印1
  System.out.println(z.output);   //打印13
}
}
class Fu {
public  String output="1";
public void show(){
  output+=1;
}
}
class Zi extends Fu{
public void show(){
  output+=3;
}
}
回复 使用道具 举报
new 对象
回复 使用道具 举报
编译看左边 运行看右边
回复 使用道具 举报
yuchifeifan 来自手机 中级黑马 2016-2-12 01:10:41
12#
陈胜 发表于 2016-2-8 17:10
大家新年快乐!!!     与大家分享四道多态方面的试题
1...
class test {

我怎么看着这四道题没区别呢
回复 使用道具 举报
renkuo023 发表于 2016-2-8 17:46
不明白啊。Zi z = (Zi)f; 是讲父类转换为为子类?

1...
class test {
        public static void main(String[] args) {
                Fu f = new Zi();               
                Zi z = (Zi)f;               
                f.show();//编译看父类,运行看子类,子类output+3变为"13",父类output不变
                z.show();//子类output+3变为"133"  父类output不变
                System.out.println(f.output);1
                System.out.println(z.output);133
        }
}
class Fu {
        public  String output="1";
        public void show(){
                output+=1;
        }
}
class Zi extends Fu{
        public  String output="1";
        public void show(){
                output+=3;
        }
}

2...
class test {
        public static void main(String[] args) {
                Fu f = new Zi();               
                Zi z = (Zi)f;               
                f.show();//编译看父类,运行看子类,子类继承父类output,子类调用父类output,output变为"13"
                z.show();//子类调用父类output,output变为"133"   共用父类output
                System.out.println(f.output);133
                System.out.println(z.output);133
        }
}
class Fu {
        public  String output="1";
        public void show(){
                output+=1;
        }
}
class Zi extends Fu{
        public void show(){
                output+=3;
        }
}

3...
class test {
        public static void main(String[] args) {
                Fu f = new Zi();               
                Zi z = new Zi();       
                f.show();//编译看父类,运行看子类,父类output不变,子类output变为"13"
                z.show();//z为另一个对象,子类调用父类output,子类output变为"13"
                System.out.println(f.output);1
                System.out.println(z.output);13
        }
}
class Fu {
        public  String output="1";
        public void show(){
                output+=1;
        }
}
class Zi extends Fu{
        public  String output="1";
        public void show(){
                output+=3;
        }
}

4...
class test {
        public static void main(String[] args) {
                Fu f = new Zi();               
                Zi z = new Zi();       
                f.show();
                z.show();
                System.out.println(f.output);//编译看父类,运行看子类,子类调用父类output变为"13"
                System.out.println(z.output);//z为另一个对象,子类调用父类output,子类调用output变为"13"
        }
}
class Fu {
        public  String output="1";
        public void show(){
                output+=1;
        }
}
class Zi extends Fu{
        public void show(){
                output+=3;
        }
}
回复 使用道具 举报
DDK畅 发表于 2016-2-10 06:53
晕了,虽然刚学完 但是还是不太明白

1...
class test {
        public static void main(String[] args) {
                Fu f = new Zi();               
                Zi z = (Zi)f;               
                f.show();//编译看父类,运行看子类,子类output+3变为"13",父类output不变
                z.show();//子类output+3变为"133"  父类output不变
                System.out.println(f.output);1
                System.out.println(z.output);133
        }
}
class Fu {
        public  String output="1";
        public void show(){
                output+=1;
        }
}
class Zi extends Fu{
        public  String output="1";
        public void show(){
                output+=3;
        }
}

2...
class test {
        public static void main(String[] args) {
                Fu f = new Zi();               
                Zi z = (Zi)f;               
                f.show();//编译看父类,运行看子类,子类继承父类output,子类调用父类output,output变为"13"
                z.show();//子类调用父类output,output变为"133"   共用父类output
                System.out.println(f.output);133
                System.out.println(z.output);133
        }
}
class Fu {
        public  String output="1";
        public void show(){
                output+=1;
        }
}
class Zi extends Fu{
        public void show(){
                output+=3;
        }
}

3...
class test {
        public static void main(String[] args) {
                Fu f = new Zi();               
                Zi z = new Zi();       
                f.show();//编译看父类,运行看子类,父类output不变,子类output变为"13"
                z.show();//z为另一个对象,子类调用父类output,子类output变为"13"
                System.out.println(f.output);1
                System.out.println(z.output);13
        }
}
class Fu {
        public  String output="1";
        public void show(){
                output+=1;
        }
}
class Zi extends Fu{
        public  String output="1";
        public void show(){
                output+=3;
        }
}

4...
class test {
        public static void main(String[] args) {
                Fu f = new Zi();               
                Zi z = new Zi();       
                f.show();
                z.show();
                System.out.println(f.output);//编译看父类,运行看子类,子类调用父类output变为"13"
                System.out.println(z.output);//z为另一个对象,子类调用父类output,子类调用output变为"13"
        }
}
class Fu {
        public  String output="1";
        public void show(){
                output+=1;
        }
}
class Zi extends Fu{
        public void show(){
                output+=3;
        }
}
回复 使用道具 举报

1...
class test {
        public static void main(String[] args) {
                Fu f = new Zi();               
                Zi z = (Zi)f;               
                f.show();//编译看父类,运行看子类,子类output+3变为"13",父类output不变
                z.show();//子类output+3变为"133"  父类output不变
                System.out.println(f.output);1
                System.out.println(z.output);133
        }
}
class Fu {
        public  String output="1";
        public void show(){
                output+=1;
        }
}
class Zi extends Fu{
        public  String output="1";
        public void show(){
                output+=3;
        }
}

2...
class test {
        public static void main(String[] args) {
                Fu f = new Zi();               
                Zi z = (Zi)f;               
                f.show();//编译看父类,运行看子类,子类继承父类output,子类调用父类output,output变为"13"
                z.show();//子类调用父类output,output变为"133"   共用父类output
                System.out.println(f.output);133
                System.out.println(z.output);133
        }
}
class Fu {
        public  String output="1";
        public void show(){
                output+=1;
        }
}
class Zi extends Fu{
        public void show(){
                output+=3;
        }
}

3...
class test {
        public static void main(String[] args) {
                Fu f = new Zi();               
                Zi z = new Zi();       
                f.show();//编译看父类,运行看子类,父类output不变,子类output变为"13"
                z.show();//z为另一个对象,子类调用父类output,子类output变为"13"
                System.out.println(f.output);1
                System.out.println(z.output);13
        }
}
class Fu {
        public  String output="1";
        public void show(){
                output+=1;
        }
}
class Zi extends Fu{
        public  String output="1";
        public void show(){
                output+=3;
        }
}

4...
class test {
        public static void main(String[] args) {
                Fu f = new Zi();               
                Zi z = new Zi();       
                f.show();
                z.show();
                System.out.println(f.output);//编译看父类,运行看子类,子类调用父类output变为"13"
                System.out.println(z.output);//z为另一个对象,子类调用父类output,子类调用output变为"13"
        }
}
class Fu {
        public  String output="1";
        public void show(){
                output+=1;
        }
}
class Zi extends Fu{
        public void show(){
                output+=3;
        }
}

评分

参与人数 1黑马币 +2 收起 理由
tujiu888 + 2

查看全部评分

回复 使用道具 举报

回帖奖励 +2

谢谢分享
回复 使用道具 举报

回帖奖励 +2

看完两道了,明天再看后两个,感谢分享
回复 使用道具 举报

回帖奖励 +2

关注一下!
回复 使用道具 举报

回帖奖励 +2

先回复再看的人有木有
回复 使用道具 举报
TobyoTenma 来自手机 中级黑马 2016-2-20 08:55:59
20#

回帖奖励 +2

分行很强大
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马