Java问答_5
2021/11/21 22:40:12
本文主要是介绍Java问答_5,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.实验:利用IDE的debug功能给例6.4和例6.5的new语句设置断点,使用单步调试(step into/step over)跟踪子类对象实例化(初始化)的执行顺序,并总结该过程。
2.如何实现两个对象之间互发消息,请举例说明。
3. 谈谈组合与继承的区别以及两者的使用场景(即什么时候宜用组合 ?什么时候宜用继承?)。
继承中子类可以访问和调用父类的部分属性和方法。组合是通过对现有对象进行拼装即组合产生新的具有更复杂的功能。
当只需要某个类的方法时使用组合。当两个类之间是is-a的关系时使用继承。
4. Java中的运行时多态的含义是什么?有什么作用?请举例说明。
运行时多态指程序运行时系统根据实例的类型选择调用某个方法。当子类重写了父类方法,使用父类引用指向子类对象,再调用某一父类中的方法时,不同子类会表现出不同结果。
运行时多态可以在运行时解决很多事,提供更大的灵活性。
5. 使用接口改写例6.8中的程序。
6. 自定义一个类,覆写equals方法,以满足自身业务需求。
7. 举例说明运算符instanceof的使用场景。
public interface A {
}
public class B implements A{
}
public class C extends B{
}
public class InstanceofTest3 {
public static void main(String[] args) {
A a = null;
B b = null;
boolean result;
result = a instanceof A;
System.out.println(result); // 结果:false null用instanceof跟任何类型比较时都是false
result = b instanceof B;
System.out.println(result); // 结果:false null用instanceof跟任何类型比较时都是false
a = new B();
b = new B();
result = a instanceof A;
System.out.println(result); // 结果:true a是接口A的实例对象引用指向子类类B,类B实现了接口A,所以属于同一个继承树分支
result = a instanceof B;
System.out.println(result); // 结果:true a是接口A的实例对象引用指向子类类B,类B实现了接口A,所以属于同一个继承树分支
result = b instanceof A;
System.out.println(result);// 结果:true b是类B的实例对象,类B实现了接口A,所以属于同一个继承树分支
result = b instanceof B;
System.out.println(result);// 结果:true b是类B的实例对象,类B实现了接口A,所以属于同一个继承树分支
B b2 = new C();
result = b2 instanceof A;
System.out.println(result); // 结果:true b2是父类B引用指向子类C,类B实现了接口A,所以属于同一个继承树分支
result = b2 instanceof B;
System.out.println(result); // 结果:true b2是父类B引用指向子类C,所以属于同一个继承树分支
result = b2 instanceof C;
System.out.println(result); // 结果:true b2是父类B引用指向子类C,所以属于同一个继承树分支
}
}
8. 谈谈抽象类与接口的异同以及两者的使用场景。
相同点:两者都具有抽象方法,都不能实例化,都可以有自己的声明,能引用子类或实现类对象。
不同点:抽象类可以有域变量;接口只能是静态常量。
抽象类可以有具体方法,具体方法可以调用抽象方法;接口有方法则只能是抽象方法。
抽象类必须有子类继承;接口必须有实现类实现。
一个类只能继承一个抽象类,但可以同时实现多个接口。
抽象类用于is-a关系中,接口用于can-do关系中。
这篇关于Java问答_5的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)