用继承,组合复用代码及default的继承范围

</pre><p></p><p>编程中多用组合少用继承</p>方式1:组合<p><span style="font-size:18px">定义:组合是整体和部分的关系,部分只能属于一个整体 has a 整体有一个部分</span></p><p><span style="font-size:18px">对象之间四大关系:</span></p><p><span style="font-size:18px">(1)关联:聚合和组合</span></p><p><span style="font-size:18px">(2)继承</span></p><p><span style="font-size:18px">(3)实现</span></p><p><span style="font-size:18px">(4)依赖</span></p><p></p><p style="font-size:18px"><span style="font-size:18px">组合:类A组合类B的对象</span></p><p style="font-size:18px"></p><p style="font-size:18px">class A{</p><p style="font-size:18px"><span style="white-space:pre"></span>private B b=new B();</p><p style="font-size:18px">}</p><p style="font-size:18px"></p><p><span style="font-size:18px">代码举例:</span></p>比如有个类叫Dao它有两个属性一个是选择刀的大小一个是砍方法<span style="font-size:18px"></span><pre name="code" class="java">public class Dao {
	
	public int daoSize=1;
	public void kan(){
		System.out.println("往右砍");
		System.out.println("往做砍");
	}

}

还有一个类叫战士它有一把刀他能战斗可以改变刀的大小

<span style="font-size:18px;">public class ZhanShi {
	
	private Dao dao=new Dao();
	
	public void Zhandou(){
		dao.daoSize=3;
		dao.kan();
	}

}</span>


如果把刀定义成局部变量叫依赖不叫组合了


方式2:继承


准确的翻译成扩展


示例代码

写一个Person类,里面有两个方法每个人都吃饭,睡觉

public class Person {

	public void eat(){
		System.out.println("我在吃饭");
	}
	
	public void sleep(){
		System.out.println("睡觉");
	}
	
}
再写一个Student类,因为Student也是人他也吃饭睡觉所以我们继承Person方法


public class Student extends Person{

	public void study(){
		System.out.println("我在学习");
	}
	
	public static void main(String[] args) {
		Student s = new Student();
		
		s.eat();//虽然Student没有定义 eat方法  但是相当于定义了 
	}
}


Person 父类  基类
Student 子类   派生类  衍生类


注意:protected和public可以被继承。

private 是不可以继承的的

default比较特殊,default只能在本包内继承,不能跨包继承,default不能被继承这个观点错误的


代码举例:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值