12.1 基础知识
面试例题1:下面哪一项说法是正确的?
A.在一个子类中一个方法不是public的就不能被重载
B.覆盖一个方法只需要满足相同的方法名和参数类型就可以了
C.覆盖一个方法必须需要相同的方法名参数和返回类型
D.一个覆盖的方法必须有相同的方法名、参数名和参数类型
解析:
对于在同一可访问区内被声明的几个具有不同参数列(参数的类型、个数、顺序不同)的同名函数,程序会根据不同的参数列来确定具体调用哪个函数,这种机制叫重载,重载不关心函数的返回值类型。覆盖是指派生类中存在重新定义的函数,其函数名、参数列、返回值类型必须同父类中的相对应被覆盖的函数严格一致,覆盖函数和被覆盖函数只有函数体(花括号中的部分)不同,当派生类对象调用子类中该同名函数时会自动调用子类中的覆盖版本,而不是父类中的被覆盖函数版本,这种机制就叫做覆盖。
成员函数被重载的特征如下。
(1)相同的范围(在同一个类中);
(2)函数名字相同;
(3)参数不同;
(4)virtual关键字可有可无。
覆盖的特征如下。
(1)不同的范围(分别位于派生类与基类);
(2)函数名字相同;
(3)参数相同;
(4)基类函数必须有virtual关键字。
答案:C
面试例题2:下面的说法中哪项是正确的?
A.静态方法不能被覆盖成非静态的方法
B.静态方法不能被声明成私有的
C.私有的方法不能被重载
D.一个重载的方法在基类中不通过检查不能抛异常
解析:JDK 1.1版本会发布这样一个提示信息:静态的方法不能被覆盖。选项 B和C的说法并不合理,没有合理的理由来说静态的方法不能被声明成私有的,或私有的方法不能被重载。选项D是对于一个覆盖方法异常限制的混杂版本来说的。
答案:A
面试例题3:给定下面的代码。
class Base {} |
What code placed after the comment //Here will result in calling the getFields method resulting in the output of the string "Agg"?(下面哪个选项的代码替换到//Here,会调用getFields方法使输出结果输出字符串“Agg”?)
A. System.out.println(a.getFields());
B.System.out.println(a.name);
C.System.out.println((Base) a.getFields());
D.System.out.println( ((Agg) a).getFields());
解析:Base类型要引用Agg类的实例需要把Base类显示转换为Agg类,然后调用Agg类中的getFields()方法。如果a是Base类的一个实例的话,它要调用getFields()方法,那此方法在Base类中是不存在的,必须把a转换为Agg类的一个实例,这样才可以调用它里面的方法。
答案:D
面试例题4:如果在下列代码中的Here处添加一段代码,问哪一个选项不能通过编译[Trend公司2005年10月面试题]
public class Upton{ |
A.public int amethod(int z){}
B.public int amethod(int i,int j){return 99;}
C.protected void amethod(long l){}
D.private void anothermethod(){}
解析:选项A不能通过编译。一个方法是显式地返回一个int值的方法,另一个是在同一个类中上述方法的一个重定义。方法中参数从i换做z对一个方法并没有任何影响。一个方法不能在同一个类中被覆盖。
答案:A
面试例题5:下面代码的输出结果是多少?[Trend公司2005年10月面试题]
class A { |
解析:每新建一个对象,都会产生一个构造函数,因为产生构造函数的顺序是A,B,A,所以结果是A,B,A。
答案:A,B,A
面试例题6:下面代码的输出结果是多少?[Trend公司2005年10月面试题]
class Parent { |
解析:父类里的东西也可以理解成你自己的东西。也就是说在程序里面有两个value,一个是123,另一个是456。而现在要输出的是父类里面的那个value,所以就是123。原因是在输出语句中使用的是getValue()方法,而这个方法就是父类里面的方法。它的返回值是父类里面定义的value,从父类继承来的没有被子类覆盖的方法操作的是继承于父类的被隐藏的变量,也就是123。
答案:123
| 回书目 上一节 下一节 |
|
· 第六章 你能帮我吗?.. · Linux笔试面试题选摘测.. · 08年5月软考网管上午真.. · 性能测试从零开始 目录 · 08年5月软考网工上午真.. · 上周拒绝服务攻击(DDo.. |
· 08年5月各大网上书店及.. · 2008年5月24日软考试题.. · 软件设计师专家临考模.. · 上周网络管理员专家自.. · 网络工程师自测获奖名.. · 08年4月各大网上书店及.. |
|
||||
| · NAC安全访问控制 · 网络布线测试仪器 · Windows Server 2008专.. · Windows远程桌面应用 · 网络故障排除宝典 · 运营商封堵ADSL共享 中.. · 解析35岁技术人的价值.. · 世纪枭雄比尔盖茨的王.. |
· 主流品牌防火墙配置 · ASP.NET开发教程 · 超级计算机TOP500专题 · Vista SP1对决XP SP3 · SQL Server 2008/2005.. · 程序员如何成长? · C#技术开发指南 · 虚拟化技术还有点“虚” |
|||
|
||||
| · SOA 面向服务架构 · SQL Server 2008/2005.. · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · Windows远程桌面应用 · C#技术开发指南 · Apache技术专题 |
· Windows集群服务应用 · C#技术开发指南 · 国际文档格式标准开战 · 路由器设置与口令恢复 · Linux 集群技术专题 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 |
|||
|
||||
| · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · C#技术开发指南 · 三层交换技术专题 · Apache技术专题 · C#技术开发指南 |
· Windows远程桌面应用 · 企业数据恢复指南 · Windows集群服务应用 · 路由器设置与口令恢复 · Linux 集群技术专题 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 反垃圾邮件技术应用 |
|||