Java论述5

1. 如何实现两个对象之间互发消息,请举例说明。
当一个类在域变量中声明另外一个对象时,两个对象之间就可以互发消息。

class A{
	private B b;
	private String msg = "This is A's msg!" ;
	public String getmsg() { return this.msg; }
	public void show(){
		System.out.println(b.getmsg());
	}
}

class B{
	private A a;
	private String msg = "This is B's msg!" ;
	public String getmsg() { return this.msg; }
	private void show(){
		System.out.println(a.getmsg());
	}
}

2. 谈谈组合与继承的区别以及两者的使用场景(即什么时候宜用组合 ?什么时候宜用继承?)。
组合:类之间关联性不大,类成员的访问权限不具有特殊性,一般用于类A是类B的组件;
继承:类之间存在衍生,发展,包含等关联,父类protected成员可以提供给子类访问权限,一般用于类A是类B的特例;

3. Java中的运行时多态的含义是什么?有什么作用?请举例说明。
动态绑定,使用父类引用指向子类对象,再调用某一父类中的方法时,不同子类会表现出不同结果。这样拓展性好。
运行时多态一般通过方法重写实现,如

class man{
	void attach(){ 
		System.out.println( "this man attach with a punch" );
}}
class caster extends man{
	void attach(){
		System.out.printkn( "this caster attach with magic");
}}
........
当有一个方法为
void play(man a){
	a.attch();
}
编译运行时,编译器会根据方法的形式参数动态绑定,由man父类引用指向不同职业比如caster的子类对象,
表现不同攻击效果。

4. 自定义一个类,覆写equals方法,以满足自身业务需求

class point{
private int x,y;

public boolean equals(point a){
	if(this.x==a.x && this.y==a.y){
		return True;
	}else{
		return False;
	}
} 

5. 举例说明运算符instanceof的使用场景。
instanceof 用于判断对象是否为某一类 ,得到一个boolean的值;

e.g.   父类: Account 子类: CAccount
Account a ;
CAccount b ;
boolean result1 = b instanceof Account; // result1 = True; 子类对象是父类实例
boolean result2 = a instanceof CAcount; //result2 = False; 父类对象不是子类实例

6. 谈谈抽象类与接口的异同以及两者的使用场景。

  • 抽象类是一个特殊的类,抽象类中可以包含没有方法体的方法(抽象方法)
  • 接口可以理解成一个特殊的抽象类,特殊在,接口里的都是抽象方法,没有普通方法,接口会为方法自动拼接public abstract,还会为变量自动拼接public final static
  • 抽象类可以有成员变量成员常量 接口只能有静态常量
  • 抽象类可以有构造方法,接口中没有构造方法
  • 抽象类和接口都不能实例化(创建对象)
  • 类只能单继承,接口可多继承接口,且一个类可以实现多接口
  • 抽象类是重构的结果,接口是设计的结果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值