您的位置:首页 > 编程语言

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

2016-03-06 14:04 501 查看
</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不能被继承这个观点错误的

代码举例:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: