java成长笔记

抽象类和接口

2019-08-12  本文已影响0人  G_uest

抽象类特点

  1. 抽象类和抽象方法都需要使用abstract修饰
    1. 抽象类 abstract class test{}
    2. 抽象方法 public abstract void test();
  2. 抽象类和抽象方法的关系
    1. 抽象方法所在的类必须是抽象类。
    2. 抽象类中未必一定有抽象方法。
  3. 抽象类不能实例化,要通过定义子类,由子类实现父类的全部抽象方法,才能创建对象。
  4. 子类通过 extends 关键字继承父类 class 子类名 extends 父类名{}
  5. 抽象类的子类
    1. 是一个抽象类,该类没有实现抽象类中的所有抽象方法。
    2. 是一个普通类,该类实现了抽象类中的所有抽象方法。

抽象类成员特点

  1. 成员变量:可以定义变量,也可以定义常量,但是不能被抽象。
  2. 构造方法:可以有,有无构造方法,不取决于是否可以创建对象,而是取决于是否可以定义成员变量。
  3. 成员方法:
    1. 可以是抽象方法,强制子类重写。
    2. 也可以是非抽象方法,用于给子类继承,提高代码复用性。

接口特点

  1. 使用interface关键字修饰(编译后为 .class文件)interface name { 方法声明 }
  2. 接口中,只可以声明抽象方法
  3. 子类通过 implement 关键字实现接口class 类名 implement 接口名{ }
  4. 接口不能实例化,要通过定义实现类,实现接口中的所有抽象方法,才可以创建对象。
  5. 接口的实现类
    1. 是一个抽象类,该类没有实现接口中的所有抽象方法。
    2. 是一个普通类,该类实现了接口中的所有抽象方法。

接口中成员的特点

  1. 成员变量:只能是常量,不能是变量 默认加上public static final,建议手动加上。
  2. 构造方法:没有构造方法,接口中无法定义成员变量。实现类不去访问接口中的构造方法(访问也没有),而是父类的构造方法。
  3. 成员方法:只能是抽象方法,默认加上public abstract,建议手动加上。

类与类的关系

继承关系,使用extends关键字。可以单继承,不可以多继承,可以多层继承。

类与接口的关系

实现关系,使用implement关键字。可以单实现,也可以多实现,不能多层实现。

// 多实现
class 类名 implement 接口1, 接口2, 接口3...{
    // 重写所有接口中的所有抽象方法
}

一个类可以继承一个类的情况下同时实现多个类

class 子类名 extends 父类名 implement 接口1, 接口2...{
    // 重写父类和接口中的所有抽象方法
}

接口与接口的关系

继承关系,使用extends关键字。可以单继承,也可以多继承,可以多层继承

interface 接口名 extends 接口1, 接口2...{
    
}
上一篇下一篇

猜你喜欢

热点阅读