两种代码重用机制——组合与继承


1.组合(composition):将某现有类的对象的引用置于新类之中,作为新类的成员。成员间是"has-a"的关系。这样做的好处是可以利用自己或别人已调试好的代码,提高编程效率。

2.继承(inheritance):java中所有类都默认继承Object类。在新类后用extends关键字后跟继承的基类的方式实现。(继承的类称为子类)子类初始化前先对父类进行初始化。基类构造器为有参构造器时,需使用super关键字显示调用基类构造器并配以适当的参数列表。另外,如果在基类中有有参构造器而没有显示编写无参构造器,在子类中编写无参构造器且没有使用super显示调用基类构造器,则会产生异常。在访问权限足够的情况下(子类不能访问父类private权限的方法或成员),子类中可以使用super关键字调用从基类继承来的的方法,子类重写父类方法时,方法的参数和修饰词都应相同,当然子类也可以有自己的方法。、

继承的优点之一是它支持增量开发,允许你引入新代码而不会在现有代码中引发Bug。继承描述了新类与基类之间的关系,即”新类是基类的一种类型“,这意味着基类中所有的方法在导出类中同样有效,导出类对象也是一种类型的基类对象(”即向上转型“)。一般在需要用到向上转型时才使用继承这一技术。

子类:

public class Test01 extends Test1{
	Test01(){
		System.out.println("hello01");
		
	}
	protected void m1(){
		super.m1();
	}
	public  static void main(String[] Args){
		Test01 t = new Test01();
		t.m1();
	}
}
基类:
public class Test1 {
	Test1(){
		this("lei");
		System.out.println("hello");
		
	}
	Test1(String s){
		System.out.println("hello"+s);
	}
	//
	protected void m1(){
		
		System.out.println("method1");
		m2();
		this.m2();
	}
	void m2(){
		System.out.println("method2");
	}
	void m3(){
		System.out.println("i:"+i+"; "+"s:"+s);
	}
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值