首页 > 代码库 > java基础知识回顾之面向对象

java基础知识回顾之面向对象

一 . 抽象类


   什么是抽象类?很简单,就是用abstract关键字修饰,并允许包含未实现方法的类。

   什么时候定义抽象类?在有些情况下,可能有些方法无法确定要怎么实现,这时就可以定义抽象类,无法实现的方法定义成抽象方法。

   抽象类的特性:

   1. 不能实例化,即不能创建对象,只能作为父类被继承。

   2. 子类继承一个抽象类后,必须实现父类的抽象方法。

   3. 抽象类中可以有抽象方法,也可以不包含抽象方法,但如果包含抽象方法,就必须定义成抽象类。 

public abstract class Shaoe{
  private String color;
  public void setColor(String color){  //declare method
    this.colot = color;
  }
  //declare abstract method
  public astract double area();
  public astract double perimeter();
}

二 . 接口


   什么是接口?接口是方法声明和常量值定义的集合。

   什么时候定义接口?在某些情况下,整个类的所有方法都不确定怎么实现,这个时候就要定义成接口。接口其实是一组标准,其他类可以基于此标准做不同的实现。

   接口特性:

   1. 接口只包含常量(属性)定义和方法声明,属性编译后即常量,因此i必须属性赋初值。

   2. 其他类实现接口是,必须实现接口中的全部方法。

   3. 一个类可以实现多个类。

   4. 定义接口是可以继承,接口之间可以多继承。如public interface A extends B,C{}.

代码实例:

public interface DB{
  public int MAX = 50;
  public void conection();
  public void disconnection();
}

三 . 多态


    什么是多态?简单点说,多态就是:父类 a = new 子类(...);  或 接口 a = new 实现类(..);

    多态带来最大的好处就是是程序更加的灵活。

    例如ArrayList类中的add(Object obj)方法,参数类型是Object,因此可以传入任何一个类的对象,而不用为每一种类定义一种方法。

四. 自由块


   自由块,又叫初始化块,在对象创建时会先调用,主要完成初始化的操作。

   在这里主要说一下初始化块与静态初始化块之间的区别:

      非静态初始化块主要用于初始化对象,在每次对象创建时都要调用一次,其执行在构造方法之前。

      静态初始化块,用static关键字修饰,主要用于初始化静态变量和静态方法。而且只调用一次,就是在类第一次加载到内存时调用,并非一定要创建对象。