跟我学JAVA / 第六课:深入Java类——关联关系 聚合关系 接口与抽象类
2018-03-09
本章我们将学到的知识点:
1、关联关系 2、聚合关系 3、接口与抽象类
一、类的关联关系
1.关联关系:表示不同类的对象之间的结构关系,它在一段时间内将多个类的实例连接在一起。 通过关联关系可以表示对象之间的沟通。 多个对象处于同一个层次上
包括: 一对一关系 一对多关系 多对多关系
2.聚合关系:聚合关系是关联关系的一种,是强的关联关系,表示整体与个体的关系。
聚合关系用于对模型元素之间的组装关系进行建模。如: 汽车由很多零部件组成; 计算机由很多设备组成; 图书馆由很多书组成; 公司由很多部门组成。
二、抽象类
在java中用abstract关键字来修饰一个类时,这个类叫做抽象类。
abstract class className{ }
抽象类的特点: 抽象类不能直接运用new创建对象 抽象类的实体中可以有abstract方法,且abstract方法只允许声明,而不允许实现
抽象类中不一定要包含abstract方法,但一个类中包含了abstract方法,则这个类必须声明为abstract类。 抽象类的实现子类必须实现抽象类中所有的abstract方法
abstract returnType method([paramList]);
三、接 口
接口:是抽象类的一种,只包含常量和方法的定义,而没有变量和方法的实现,且其方法都是抽象方法。
接口的含义: 所有实现了该特定接口的类看起来都象它。
接口定义:
1、 access为public 或没有(默认包访问修饰符)。
2、包括接口声明和接口体;接口体包括常量定义和方法定义。
3、常量被实现该接口的多个类共享; 具有public ,final, static的属性。
4、方法体具有 public和abstract属性。
接口定义例子:
Interface Callback{ String name = "interface callback"; void callback(int param); }
接口的实现-implements 关键字:
实现格式:
access class classname [ extends superclass ] [implements interface[ , interface…] ]{ //class-body }
1、access是public或没有(默认包访问修饰)。
2、一个类可以实现多个接口,在implements子句中用逗号分开。
3、实现类共享接口中定义的常量为,而且必须实现接口中定义的所有方法。
4、实现接口的方法必须声明成public,且必须严格与接口定义中制定的类型匹配。
5、若多个接口中有相同的方法,只现实一次。
6、可在实现类中定义自己的附加变量或方法。
接口实现的例子:
public class Client implements Callback{ //实现接口中定义的方法 public void callback(int p){ System.out.println("callback called with "+p); } //自定义方法 public void nonIfaceMeth(){ System.out.println("define other method"); } }
接口的局部实现--抽象类:
如果一个类包含一个接口但是不完全实现接口中定义的方法,那么该类必须定义成abstract型。 例如:
abstract class Incomplete implements Callback{ int a,b; void show(){ System.out.println(a + “ “+b); } }
任何继承Incomplete的类都必须实现callback()方法,或是自己也定义成abstract类。
用接口实现多重继承—接口的应用:
1、用接口实现多重继承 2、用接口来实现群组常量的定义 3、可以将接口当成接口类型来使用 4、接口可以扩展
Java只支持单继承,那么我们可以通过实现接口的方式,让一个类拥有多个类型的操作。
例如: 如果要表示一个X是一个A和一个B以及一个C;
因为接口中定义的任何字段都是static和final的,可以将接口当成创建常量组的工具。
public interface Months{ int JANUARY = 1, FEBRUARY = 2, MARCH = 3, APRIL = 4, MAY = 5, JUNE = 6, JULY = 7, AUGUST = 8, SEPTEMBER = 9, OCTOBER = 10, NOVERBER= 11, DECEMBER = 12; }
引用的方法:packageName.Months.JANUARY即可代表数字1。
缺点: 缺少安全性。
接口可作为一种引用类型来使用。 可创建一个接口类型的类实例对象。 一个接口引用变量仅知道被它的接口定义声明的方法。
通过继承可以在新接口中添加新的方法,还可以在新接口中组合数个接口。当一个类实现了该接口,它必须实现接口继承链表中定义的所有方法。
转载于:https://www.cnblogs.com/Parker-YuPeng/articles/8532048.html