论坛首页 招聘求职论坛

一个方法重写的问题

浏览 4686 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-06-14  
1、public class SupClass {
    public SupClass() {
    }
    public void print(){
        System.out.print("sup");
    }
   
}
2、public class SubClass extends SupClass{
    public SubClass() {
    }
    protected void print(){
        System.out.print("sub");
    }
    public static void main(String[]  args){
        SubClass subClass=new SubClass();
        subClass.print();
    }
}
答案 A、编译通不过; B、编译能通过,运行报错; c、打印出sup; d、打印出sub;

我选了 A,面试官说D;回来专门测试了下,的确编译通不过,提示:
"SubClass.java": print() in com.SubClass cannot override print() in com.SupClass; attempting to assign weaker access privileges; was public at line 6, column 5

这种情况怎么办?
   发表时间:2008-06-14  
子类如果要重写父类的方法,那么子类作用域不能小于父类,也就是说如果父类是public,那么子类必须是public,不能是别的,这样就做到了在调用父类的地方都能调用子类,如果子类的修饰符不是public,那么就会有问题。
比如:
SupClass sup = new SupClass();
sup.print();
sup = new SubClass();
sup.print();
按照继承关系,SubClass是SupClass的子类,那么可以调用父类print方法的地方都可以调用子类的print。如果修饰符不是public,那么上面这个代码就不能运行,也就违背继承原则,父类就不是子类的一个子集。
0 请登录后投票
   发表时间:2008-06-14  
wolfbrood 写道
子类如果要重写父类的方法,那么子类作用域不能小于父类,也就是说如果父类是public,那么子类必须是public,不能是别的,这样就做到了在调用父类的地方都能调用子类,如果子类的修饰符不是public,那么就会有问题。
比如:
SupClass sup = new SupClass();
sup.print();
sup = new SubClass();
sup.print();
按照继承关系,SubClass是SupClass的子类,那么可以调用父类print方法的地方都可以调用子类的print。如果修饰符不是public,那么上面这个代码就不能运行,也就违背继承原则,父类就不是子类的一个子集。

楼主问的应该是:笔试的时候,我答对了,但考官搞错了,怎么办?
那考官自己的基础都不好,你还在乎这家公司、在乎这次面试么?我觉得找一个好的技术团队很重要,工资、公司大小之类的都是次要的。
0 请登录后投票
   发表时间:2008-06-14  
深秋小雨 写道
wolfbrood 写道
子类如果要重写父类的方法,那么子类作用域不能小于父类,也就是说如果父类是public,那么子类必须是public,不能是别的,这样就做到了在调用父类的地方都能调用子类,如果子类的修饰符不是public,那么就会有问题。
比如:
SupClass sup = new SupClass();
sup.print();
sup = new SubClass();
sup.print();
按照继承关系,SubClass是SupClass的子类,那么可以调用父类print方法的地方都可以调用子类的print。如果修饰符不是public,那么上面这个代码就不能运行,也就违背继承原则,父类就不是子类的一个子集。

楼主问的应该是:笔试的时候,我答对了,但考官搞错了,怎么办?
那考官自己的基础都不好,你还在乎这家公司、在乎这次面试么?我觉得找一个好的技术团队很重要,工资、公司大小之类的都是次要的。

面试完了之后就别管那么多了,继续做自己的事。想多了也没用。好比有人和我说java里面不用声明变量就可以直接用,好比javascript,我当时就无语。
0 请登录后投票
   发表时间:2008-06-14  
后来发了份邮件过去,去提这事,真的要挂,也不能不明不白!
0 请登录后投票
   发表时间:2008-06-14  
看你对这家公司是否在意
技术面试的面试官技术都不咋样 进去就怕被穿小鞋
0 请登录后投票
   发表时间:2008-06-15  
面你的人基础很糟糕
0 请登录后投票
   发表时间:2008-06-16  
- -~!看开点吧~,就算你面试通过了,你也要想想要是这面试官是你同事,你工作会怎样?虽然面试题实际运用中不多,但至少说明了这公司面试题准备不充分吧.

难道还有BT的?故意出错,看谁指出他的错误?然后录取?(- -~!应该没这么BT)
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics