在java中我们知道类和类是存在一定的关系,比如:继承,实现等等,当然他们之间的关系肯定不至这二种,今天就说下类与类之间的关系,
首先大家印象最深,恐怕就是继承了,
继承:是一个类继承另一个类,在java中继承用extends来表示类的关系,子类可以继承父类的非私有的成员变量和方法,子类可以根据自己的需求增加新的功能,
关系如图:
代码如下:
Person.java
<span style="font-size:24px;">public class Person {
public int age = 3;
private String name = "iphone";
public void show(){
System.out.println("age="+age+":::"+"name="+name);
}
}
</span>
<span style="font-size:24px;"></pre></p><p></p><p><span style="font-size:18px;">Student.java类什么也没写就是继承了Person类</span></p><span style="font-size:18px;"></span><pre class="java" name="code">public class Student extends Person {
}</span>
Teacher.java也是什么类也没写,继承了Person类
<span style="font-size:24px;">public class Teacher extends Person {
}</span>
测试Test.java
<span style="font-size:24px;">public class Test {
public static void main(String[] args) {
Teacher t = new Teacher();
System.out.println(t.age);
t.show();
}
}</span>
打印结果:
<span style="font-size:24px;"><pre class="java" name="code">3
age=3:::name=iphone</span>
我们发现Student和Teacher二个类并没有写任何代码,但是我们在Test类中,创建Teacher对象,并调用show方法时,会打印出结果,就是因为继承了Person类中的变量和方法,但是如果根据特定的需求,可以重写show()方法
比如:
<span style="font-size:24px;">public class Teacher extends Person {
public void show(){
System.out.println("teacher is show");
}
}</span>
上面的show()方法就是重写了,而不是直接使用父类Person类的show()方法,
继承:一般是类与类之间有特定的关系的时候或者很多子类有共同的属性或者行为时,向上抽取成一个父类,从而减少代码量,并且维护起来也方便!
类和类之间除了继承还有实现关系
实现关系:是指一个Class类实现了Intface接口,从而实现接口定义的方法,在java中实现通过implement关键字来表示,懂了继承,这个实现也不必多说,接口一般用在模块之间的分离比较多,从而降低了模块之间的耦合度
依赖关系:依赖就是一个类A使用到类B,而这种关系是具有偶然性,临时性,非常弱的,但是类B的变化会影响到类A,依赖表示要做一件事情,离不开某个对象。往往表现为B作为A的方法参数存在(A依赖B)
代码如下:
<span style="font-size:24px;">public class Person {
private String name;
private int age;
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}</span>
依赖表示要做一件事情,离不开某个对象。往往表现为
B
作
为
A
的方法参数存在(
A
依赖
B
)
依赖表示要做一件事情,离不开某个对象。往往表现为
B
作
为
A
的方法参数存在(
A
依赖
B
)
Ship.java
<pre class="java" name="code"><span style="font-size:24px;">public class Ship {
public static void thought(Person p){
System.out.println("name="+p.getName()+"===="+"age="+p.getAge());
}
public static void main(String[] args) {
thought(new Person("zhangsan",30));
}
}</span>
聚合关系:聚合是关联关系的一种特例,它体现的是整体与部分的关系,即has-a的关系,此时整体与部分之间是可以分离的,他们也具有各自的生命周期,部分可以属于多个整体对象,