天天看点

JAVA抽象与接口抽象接口

抽象

- 抽象类

  • 格式 class后面加上关键字abstract
  • abstract class 类名
  • 特点:不能直接实例化对象,通过多态的形式实现实例化 Animal a = new Animal();
  • 可以有抽象 ,也可以有具体方法
  • 有抽象方法的类必须定义为抽象类
  • 抽象类中可以有抽象方法,也可以没有
abstract不能和哪些关键字共存
  • private 冲突
  • final 冲突
  • static 无意义

成员特点:

成员变量
可以是变量 也可以是自定义的常量  final(不能被继承7)
           
构造方法
不是没有用,用于子类创建对象时访问父类的构造方法
           
成员方法
既可以是抽象方法 也可以是具体方法
           
抽象方法
修饰符 abstract,返回值类型,方法名(参数列表),没有方法体
           
具体方法:修饰符
返回值类型,方法名(参数列表){方法体}
           
猫狗案例
具体事物:猫,狗
共性:姓名,年龄,吃饭,睡觉
           
JAVA抽象与接口抽象接口
JAVA抽象与接口抽象接口
JAVA抽象与接口抽象接口
JAVA抽象与接口抽象接口
老师案例
具体事物:基础班老师,就业班老师
共性:姓名,年龄,讲课。
           
JAVA抽象与接口抽象接口
JAVA抽象与接口抽象接口
JAVA抽象与接口抽象接口
JAVA抽象与接口抽象接口
学生案例
具体事务:基础班学员,就业班学员
共性:姓名,年龄,班级,学习,吃饭
           
JAVA抽象与接口抽象接口
JAVA抽象与接口抽象接口
JAVA抽象与接口抽象接口
JAVA抽象与接口抽象接口

接口

接口特点

  • 接口用关键字interface表示
  • 格式:interface 接口名 {}
  • 类实现接口用implements表示
  • 格式:class 类名 implements 接口名 {}

接口不能实例化

  • 那么,接口如何实例化呢?
  • 按照多态的方式,由具体的子类实例化。其实这也是多态的一种,接口多态。

接口的子类

  • 要么是抽象类
  • 要么重写接口中的所有抽象方法

成员变量

只能是常量
默认修饰符 public static final
           

构造方法

没有,因为接口主要是扩展功能的,而没有具体存在
           

成员方法

只能是抽象方法
默认修饰符 public abstract
           
例1
JAVA抽象与接口抽象接口
JAVA抽象与接口抽象接口
JAVA抽象与接口抽象接口
JAVA抽象与接口抽象接口
JAVA抽象与接口抽象接口
JAVA抽象与接口抽象接口
JAVA抽象与接口抽象接口