如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
抽象类: 包含抽象方法,非抽象.
抽象类 也是类
抽象方法:被abstract 关键字修饰,没有方法体,只是作为功能的定义
被abstract修饰的类就是抽象类. 抽象类中不一定有抽象方法. 有抽象方法,那么这个类必定是抽象类. 抽象类的特点: 不能创建对象,因为其中包含了抽象的方法 包含构造方法, 在创建子类对象时,可以间接创建父类对象.
接口: 理解为是一个纯粹的抽象类
目的: 接口中定义抽象方法,作为上层的设计需要,设计功能.
/*
interface关键字修饰的是接口
public interface Animal {
//接口定义的成员变量是一个常量,默认被public static final 修饰 //public static final int NUM = 10; int NUM = 10; //jdk8以后接口中声明的抽象方法,默认是被public abstract修饰 // public abstract void eat(); void eat(); void sleep(); //jdk8以后加入静态方法,默认方法 public static void play(){ System.out.println("啊啊啊"); } //默认方法,子类可以重写也可以不重写,或者通过子类调用 public default void test(){ }
接口与接口的关系:
接口继承接口 一个接口可以继承多个接口
类与接口关系:
类实现接口, 一个类可以实现多个接口