山东大学软件学院2017-2018学年面向对象期末试题(回忆版)

山东大学软件学院2017-2018学年面向对象开发技术期末考试试题(回忆版)

(尽力用题目原话复述,但记忆的错误与偏差在所难免,见谅,欢迎指正)

 

一、什么是重载(overload )?什么是重写(override)?之间的区别是什么,请用面向对象的语言举例说明。

 

二、什么是静态绑定?什么是动态绑定?各有什么优缺点?

 

三、动物类Animal,其子类Cat;植物类Plant,其子类Tree,动物类和植物类有共同父类Object,各有对象aAnimal,aCat,aPlant,aTree,aObject,在某java片段中有如下几个方法:

void over(Object aObject,Plant aPlant);//方法一

void over(Animal aAnimal,Object aObject);//方法二

void over(Animal aAnimal,Plant aPlant);//方法三

void over(Cat aCat,Tree aTree);//方法四

请问以下几个方法调用会调用上述哪个方法,并写出分析过程:

over(aObject,aPlant);

over(aCat,aObject);

over(aObject,aObject);

over(aAnimal,aPlant);

over(aCat,aTree);

 

四、什么是单继承?什么是多重继承?各有什么优缺点?如果让你选择设计一种程序语言,你会选择哪种继承方式?为什么?

 

五、有一个List类,代码如下:

class List{

public void method1(){}

public void method2(){}

public int method3(int element){}

public void method4(int element){}

public int method5(){}

 }

(1)List有一个集合子类Set,有三个方法method2,method3,method5.请分别用继承和组合的方法写出Set的代码

(2)如果让你来选择,你会选择哪种方法来创建Set类,为什么?

 

六、商品在通过海关时,针对不同国家的有不同的税费收费标准,如果按照普通的设计思路,不符合开闭原则,请选择一种设计模式,并画出UML类图,并结合开闭原则谈谈这样设计有什么好处?

 

七、在公司中,员工报销需要上报领导审批,不同级别的领导审批权限不同,超过一定的金额就需要上报上级领导审批。在公司中有:主任,权限范围内审批金额<2000元(不包含2000);副董事,审批金额2000-10000(不包含10000);董事,审批金额10000-20000(不包含20000),当金额大于20000时,需要开会商议。请用责任链设计模式解决这个问题,画出类图,并写出主要代码框架。

 

八、浙江服装厂出售衣服,衣服包含衬衫,T恤,裤子;每件衣服的面料有纯棉,莱卡,亚麻;支付方式有银联支付,京东白条,货到付款。为了尽量减少类的数量,请选择一种设计模式,画出类图,并写出每个变化点一个子类的代码框架。

你可能感兴趣的:(考试题)