一、抽象 

如下图:

 

java复习-抽象

 

 

Shape类表达的是一种概念,一种共同属性的抽象集合,我们并不希望任何Shape类的对象会被创建出来。那么,我们就应该把这个Shape类定义为抽象的。我们用abstract关键字来定义抽象类。

抽象类的作用仅仅是表达接口,而不是具体的实现细节。抽象类中可以存在抽象方法。抽象方法也是使用abstract关键字来修饰。抽象的方法是不完全的,它只是一个方法签名而完全没有方法体。

如果一个类有了一个抽象的方法,这个类就必须声明为抽象类。如果父类是抽象类,那么子类必须覆盖所有在父类中的抽象方法,否则子类也成为一个抽象类。一个抽象类可以没有任何抽象方法,所有的方法都有方法体,但是整个类是抽象的。设计这样的抽象类主要是为了防止制造它的对象出来。

 

二、数据与表现分离

以细胞自动机为例:

黑点表示细胞活着,白点表示细胞已经死亡

循环条件如下:

java复习-抽象

java复习-抽象

 

 java复习-抽象

 总结:

1、数据和表现是分离的

程序的业务逻辑与表现无关,表现可以是图形也可以是文件;可以是当地的,也可以是远程的。

 

三、接口

Java把抽象的概念又更推进了一步。这就是接口(Interface)。接口其实就是完全抽象的类,因此接口和类的地位是一样的,此前所有针对类的所有法则同样适用于接口。

接口所有的方法都是没有方法体的,而且都是public abstract,即使你没有这样声明。而接口中的所有成员变量都是public static final的变量,并且必须有定义初始化,因为所有变量都必须在编译的时候有确定值。

接口和类的地位是一样的。因此我们可以看到其定义方式跟类也是基本上一样的。当然,其中的所有方法都没有方法体。而当类从接口得到继承的时候,Java用另外一个动词:实现(implements)。当然,实现接口的类必须覆盖接口中所有的方法,否则这个类就成为一个抽象类。

Java不允许多继承,但是允许一个类实现多个接口,也允许一个接口从多个接口得到继承,但是不允许接口从类继承。

相关文章:

  • 2021-10-04
  • 2022-12-23
  • 2021-07-13
  • 2022-12-23
  • 2021-07-19
  • 2022-02-16
  • 2022-02-01
猜你喜欢
  • 2021-10-07
  • 2021-07-01
  • 2021-11-22
  • 2022-12-23
  • 2022-12-23
  • 2021-11-08
  • 2021-07-29
相关资源
相似解决方案