动物:公共标准 接口(interface)
(特殊的类:只有 抽象方法 + 全局变量)
哺乳动物:子标准 接口的继承
非哺乳动物 :子标准 接口的继承(extends A,B)(接口的多继承)
(interface C extends A,B)(接口的多继承) 区别于 类实现接口 (class D implements A,B)
人 :不是具体的事物标准 抽象类
狗·:不是具体的事物标准 抽象类
猫 :不是具体的事物标准 抽象类
1.(拥有抽象方法的类,一定是抽象类(抽象类必须由abstract修饰),其他与普通方法相同)
2.若抽象类的抽象方法没有 方法体,则 不用加“{}”;
例: public abstract void print();
3.抽象类不能直接实例化对象
4.抽象类必须由子类继承(extends)
5.依据对象的向上转型概念,通过抽象类的子类完成抽象类的实例化对象操作。
抽象类相关限制:
1.抽象类里边会存在一些属性,那么在抽象类一定要存在构造方法,目的是为属性初始化。在子类对象初始化时,依然满足先执行父类构造,在调用子类构造的情况。
2.抽象类不能用final定义,因为抽象类必须有子类,而final定义的类不能有子类;
3.抽象类中可以没有任何抽象方法,但是只要是抽象类,就不能直接使用关键字new实例化对象。
4.抽象类中依然可以定义内部的抽象类,而实现的子类也可以根据需要选择是否定义内部类来继承抽象内部类。
工人 ,学生:类(具体的定义)
每一个学生(工人):具体的 对象;
引用类型:
数组,类,对象
访问权限修饰符:
只有 public,default能够修饰 类
区别 | 抽象类 | 接口 |
---|---|---|
关键字 | abstract class | interface |
组成 | 构造方法、普通方法、抽象方法、static方法、常量、变量 | 抽象方法、全局变量 |
子类使用 | class 子类 extends 抽象类 | class 子类 implements 接口,接口… |
关系 | 抽象类可以实现多个接口 | 接口不能继承抽象类,却可以继承多个父接口 |
权限 | 可以使用各种权限 | 只能使用public权限 |
限制 | 单继承局限 | 没有单继承局限 |
子类 | 抽象类和接口都必须有子类,子类必须要覆写全部的抽象方法 | |
实例化对象 | 依靠子类对象的向上转型进行对象的实例化 |