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 个回复

正序浏览
wusiyi 发表于 2016-2-20 19:15
在类中方法外可以重复赋值吗?

是int i;i = 1;这样吗   这不能啊

点评

i = 1是代码行,代码必须放到方法中 或静态代码块内  发表于 2016-2-22 17:38
为什么不能呢?  发表于 2016-2-22 13:55
回复 使用道具 举报
~sunny 发表于 2016-2-20 20:27
请问这个是需要入基础班考试的题吗

不是啊   就是平时做的面向对象的题   入学考试的题综合性都比较强
回复 使用道具 举报

回帖奖励 +2

今天看了2道, 明天起床继续看
回复 使用道具 举报

回帖奖励 +2

收下了。。。。。。
回复 使用道具 举报

回帖奖励 +2

请问这个是需要入基础班考试的题吗
回复 使用道具 举报

回帖奖励 +2

在类中方法外可以重复赋值吗?
回复 使用道具 举报

回帖奖励 +2

加些注释就更好了
回复 使用道具 举报

回帖奖励 +2

谢谢,分享,仔细琢磨下
回复 使用道具 举报

回帖奖励 +2

谢谢分享!
回复 使用道具 举报
TobyoTenma 来自手机 中级黑马 2016-2-20 08:55:59
20#

回帖奖励 +2

分行很强大
回复 使用道具 举报

回帖奖励 +2

先回复再看的人有木有
回复 使用道具 举报

回帖奖励 +2

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

回帖奖励 +2

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

回帖奖励 +2

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

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

查看全部评分

回复 使用道具 举报
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;
        }
}
回复 使用道具 举报
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;
        }
}
回复 使用道具 举报
yuchifeifan 来自手机 中级黑马 2016-2-12 01:10:41
12#
陈胜 发表于 2016-2-8 17:10
大家新年快乐!!!     与大家分享四道多态方面的试题
1...
class test {

我怎么看着这四道题没区别呢
回复 使用道具 举报
编译看左边 运行看右边
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马