《Java语言程序设计》第二套题.docxVIP

  • 1
  • 0
  • 约2.47万字
  • 约 19页
  • 2025-10-14 发布于天津
  • 举报

《Java语言程序设计》第二套题

第二套题

一、简答题

1什么是多态性?方法的重载和覆盖有何区别?阅读下列代码,指出其中存在的重载和覆盖,写出输出结果是什么?解释为什么这样输出?(15分)

classClass1

{

publicvoidfind(){

System.out.println(Class1.find);

}

}

classClass2extendsClass1

{

publicvoidfind(){

System.out.println(Class2.find);

}

}

classClass3{

publicvoidget(Class1one){

System.out.println(get(Class1));

one.find();

}

publicvoidget(Class2two){

System.out.println(get(Class2));

two.find();

}

}

publicclassTest1

{

publicstaticvoidmain(String[]args)

{

Class1one=newClass2();

Class3three=newClass3();

three.get(one);

}

}

get(Class1)

Class2.find

多态:就是父类引用可以持有子类对象。这时候只能调用父类中的方法,而子类中特有方法是无法访问的,因为这个时候(编译时)你把他看作父类对象的原因,但是到了运行的时候,编译器就会发现这个父类引用中原来是一个子类的对像,所以如果父类和子类中有相同的方法时,调用的会是子类中的方法,而不是父类的。

?方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。

覆盖方法的签名完全相同,但函数体不同

Class2继承Class1其中Class2对Class1find方法进行了覆盖

Class3中对get方法进行了重载

输出如上结果是因为多态,调用的是Class1的find方法。

2、请说说final、finally的区别和作用,举例说明用法;另外用自己的语言介绍throw/throws有什么联系和区别?在程序中应如何使用?(15分)

final是全局变量声明的时候使用,意思是这个变量不可被修改,不可被override,一般用于声明常量,或者系统设置的值。

finally是在try-catch-finally块中配套使用,作用是,不管代码执行了try还是catch,最后一定会执行finally里面的代码

如:方法finalvoidf(){

System.out.println(dddd);

}

属性finalintaa;

try{

}catch(Exceptione){

}finally{

//一定会执行的代码

}

3、编写一个描述老师基本情况的类,属性包括姓名,教工号,基本工资,岗位工资和绩效工资,方法包括信息输出,设置姓名和教工号,设置三种工资金额,计算总工资(三种工资加起来)和税后工资(按如下方式计算,3000以内不收税,3000-5000之间的部分扣10%,大于5000的部分扣15%)。在main方法中对方法进行测试(15分)

publicclassTestTeacher{

staticclassT{

privateStringxingming;

privateStringjiaogonghao;

privatefloatjibengongzhi;

privatefloatgangweigongzhi;

privatefloatjixiao;

publicStringgetXingming(){

returnxingming;

}

publicvoidsetXingming(Stringxingming){

this.xingming=xingming;

}

publicStringgetJiaogonghao(){

returnjiaogonghao;

}

publicvoidsetJiaogonghao(Stringjiaogonghao){

this.

文档评论(0)

1亿VIP精品文档

相关文档