1.抽象类:
- 只是约定了了类的抽象行为,没有具体的实现相应的行为。
2.场合:
- 此类不适合创建对象,使用子类的对象
- 此类,为所有子类提供了模板
3.语法:
Abstract class 抽象类{
类中的成员;
抽象的方法;
}
4. 使用注意:
- 抽象类不能创建对象;
- 必须通过 子类继承使用;
- 普通的子类必须 实现(重写)父类中的所有抽象方法;抽象的子类除外;
- 构造器不能是抽象;
- abstract 不能与 private ,static ,final一起用;
- 抽象方法可以定义也可以不定义。
- -- - - - - - - - - - - - - -- - -- - - - - - - - - - - - - -- - -- - - - - - - - - - - - - -- - -- - - - - - - - - - - -
抽象方法:没有具体实现的方法。
- -- - - - - - - - - - - - - -- - -- - - - - - - - - - - - - -- - -- - - - - - - - - - - - - -- - -- - - - - - - - - - - -
- 接口:是一组功能的封装,是一组公共的规则。
- 语法:访问修饰符 interface 接口名{
常量;
抽象方法();
Default默认方法(){}
Static 静态方法(){}
静态内部类型;内部类,接口,枚举
}
1.注意:
- 接口是不能创建对象的;
- 实现类 实现接口;普通的实现类 必须实现接口中的所有抽象方法;(抽象实现类除外);
- 实现类 可以实现多个接口中的功能;
- 接口 可以继承接口,可以多继承;
- 接口中的成员:都是public,抽象方法都是abstract;常量是public static final。
2.接口中 有同名的方法:
抽象方法:实现类统一 重写;
- - -- - - - - - - - - - - - - - -- - -- - - - - - - - - - - - - - -- - -- - - - - - - - - - - - - - -- - -- - - - - - - - - - - -
速度
①都不能创建对象;
②都存在抽象方法;
③都是子类或实现类继承或实现来使用;
④普通的子类和实现类必须重写抽象类或接口中的所有抽象方法;(抽象子类或实现类除外)
- 普通的子类 和 实现类 必须重写 抽象类 或接口中的所有抽象方法;抽象子类或实现类除外。
- 不同:
①子类只能 继承一个抽象类;实现类可以 实现多个接口;
②类是单一继承;接口可以多继承。
- 接口:一组规则。同一应用程序,降低耦合连接。不同应用程序,连接的桥梁。
- 抽象类:模板。
- - -- - - - - - - - - - - - - - -- - -- - - - - - - - - - - - - - -- - -- - - - - - - - - - - - - - -- - -- - - - - - - - - - - -
1.多态:
多态:
运行时多态;
package Day11; class Teacher{ String name; public void giveLesson() {} } class JavaTeacher extends Teacher{ String tattoo; public void sing() {} public void giveLesson() {System.out.println("讲Java课");} } public class TestTeacher { public static void main(String[] args) { //父类引用 -》子类对象 JavaTeacher guofu = new JavaTeacher(); guofu.giveLesson(); System.out.println(guofu.name); } |
Person zhangsan = new Person();
2.特点:子类(实现类)中的独特的功能被屏蔽了不能调用了。
3.类型转换:向上类型转换:子类 –》父类类型; 强转
向下类型转换:父类 –》子类类型;
4.instanceof 运算符:运算 某个 对象 是否是 接口类型;
是 --》true
不是—》false
- - -- - - - - - - - - - - - - - -- - -- - - - - - - - - - - - - - -- - -- - - - - - - - - - - - - - -- - -- - - - - - - - - - - -
- UML:建模语言。
- 类图:
- 泛化:继承(extends)
- 实现:接口 和 实现类(implements)
- 依赖:使用的关系。
语法:被依赖的类 作为 局部变量(参数)。
- 关联:拥有。(三种关系:一对一、一对多、多对多)
特殊的关联:
强关联:
聚集(聚合):整体 和 局部的关系。局部离开整体可以独立存在。
语法:成员变量。 强聚合:
组合:整体 和 局部的关系。局部离开整体不能独立存在。