抽象类:
场合:
1.不适合 创建对象,都是用的 子类的对象;
2.为所有的 子类 提供了模板。
注意:
1.抽象类 不能创建对象;
2.抽象类 中 可以包含 抽象方法 也可以不包含;
3.必须 子类继承使用;
4.普通的 子类 实现抽象父类,必须 实现抽象父类中的所有抽象方法;(抽象子类除外);
5.构造器不能是抽象的;
6.abstract 不能与 private ,static ,final一起联用。
-----------------------------------------------------
interface 接口{
常量 ; public static final
抽象方法 public abstract
default
static
静态内部类型(静态内部 类 ,接口,枚举)
}
接口中 的所有成员都是 public 的
注意:
1.接口不能创建对象的;
2.用实现类 实现使用,普通的实现类 必须实现接口 中的所有抽象方法;(抽象实现类除外);
3.实现类 可以实现多个接口的功能;
4.接口之间 可以多继承。
-------------------------------
多个接口中同名方法区分:
1.静态方法 用接口名区分;
2.默认方法 ,实现类必须重写,调用区分 接口名.super.默认方法名();
3.抽象方法,同一重写实现。
-------------------------------------------------------------
抽象类 和 接口 的异同:
相同:
1.都不能创建对象;
2.都有 抽象方法;
3.都是用 子类 和 实现类 创建对象使用;
4.普通子类 和 实现类 要 实现抽象父类 和 接口中的所有抽象方法(抽象的除外)。
不同点:
1.子类 只能继承一个抽象父类;
2.实现类来说 ,实现多个 接口的功能;
3.接口 可以多继承。
-------------------------------------------------------------
鸟
接口: 飞()
鸵鸟 麻雀
------------------------------------------------------
多态:
一种物质多种形态。
多态特征:
1.方法重写;
2.父类引用 指向 子类对象;接口引用 指向 实现类
多态体现:
屏蔽了子类的差异,子类独特的功能屏蔽了 不能调用了。
------------------------------------------------------------------------------
类多态
接口多态
参数多态
类型转换
1.向上类型转换
子类 -》 父类类型
2.向下类型转换
父类 -》 子类类型
强转
(子类类型)父类对象
------------------------------------------------------------
运算符instanceof:
运算 对象 属于哪种 类 或 接口 类型,是 此 类或接口类型 true;不是 false
--------------------------------------
UML类图:
一、泛化(继承)
访问修饰符:
- private
默认 不用
# protected
+ public
二、实现 (接口)
三、依赖
使用关系;
体现:局部变量,参数
四、关联
拥有的关系
三种:
1:1
1:n
m:n
体现:成员变量
(1)聚集(聚合):强关联
整体 和 局部的关系,局部离开了整体可以独立存在。
2)组合 :强聚集
整体和局部的关系,局部离开了主体不能独立存在。