1.多态

1.1 多态的概述

什么是多态

  同一个对象,在不同时刻表现出来的不同形态

多态的前提

  要有继承或实现关系

  要有方法的重写

  要有父类引用指向子类对象

1.2 多态中的成员访问特点

成员访问特点

成员变量

  编译看父类,运行看父类

成员方法

  编译看父类,运行看子类

1.3 多态的好处和弊端

好处

  提高程序的扩展性。定义方法时候,使用父类型作为参数,在使用的时候,使用具体的子类型参与操作

弊端

  不能使用子类的特有成员

1.4 多态中的转型

向上转型

  父类引用指向子类对象就是向上转型

向下转型

  格式:

1 子类型 对象名 = (子类型)父类引用;

2.抽象类

2.1 抽象类的概述

1.抽象类和抽象方法必须使用 abstract 关键字修饰

2.抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类

3.抽象类不能实例化(但是可以通过子类实例化,这种方法叫抽象类多态

4.抽象类的子类,要么重写抽象类中的所有抽象方法,要么是抽象类

2.2 抽象类的成员特点

成员的特点

  成员变量

    既可以是变量

    也可以是常量

构造方法

  空参构造

  有参构造

成员方法

  抽象方法

  普通方法

3.接口

3.1 接口的概述

接口就是一种公共的规范标准,只要符合规范标准,大家都可以通用。

Java中的接口更多的体现在对行为的抽象!

3.2 接口的特点

1.接口用关键字interface修饰

1 public interface 接口名 {}

2.类实现接口用implements表示

1 public class 类名 implements 接口名 {}

3.接口不能实例化

接口如何实例化呢?参照多态的方式,通过实现类对象实例化,这叫接口多态。

多态的形式:具体类多态,抽象类多态,接口多态。

4.接口的子类

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

3.3 接口的成员特点

成员特点

  成员变量

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

构造方法

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

成员方法

  只能是抽象方法 默认修饰符:public abstract

3.4 类和接口的关系

类与类的关系

  继承关系,只能单继承,但是可以多层继承

类与接口的关系

  实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口

接口与接口的关系

  继承关系,可以单继承,也可以多继承

3.5 抽象类和接口的区别

成员区别

  抽象类

    变量,常量;有构造方法;有抽象方法,也有非抽象方法

  接口

    常量;抽象方法

关系区别

  类与类

    继承,单继承

  类与接口

    实现,可以单实现,也可以多实现

  接口与接口

    继承,单继承,多继承

设计理念区别

  抽象类

    对类抽象,包括属性、行为

  接口

    对行为抽象,主要是行为

最新文章

  1. javaSE基础07
  2. 【poj2455】 Secret Milking Machine
  3. etcd相关资料
  4. 基于int的Linux的经典系统调用实现
  5. QF——iOS程序运行原理(APP的生命周期)
  6. asp.net MVC中的AppendTrailingSlash以及LowercaseUrls
  7. 基础-JavaScript中的事件
  8. python os模块学习
  9. LNMP环境的安装
  10. JQUERY选中问题
  11. JavaBean编辑器的简单介绍
  12. spark-submit参数说明--standalone
  13. springmvc注解形式的开发参数接收
  14. 从JVM内存管理的角度谈谈JAVA类的静态方法和静态属性
  15. 前端开发【第三篇: JavaScript基础】
  16. dede导航栏目调用
  17. mysql的my.ini配置文件
  18. C 数数位 while循环
  19. Android(java)学习笔记97:使用GridView以及重写BaseAdapter
  20. 感知器及其Python实现

热门文章

  1. h5 图片上传旋转问题
  2. centos8 mysql8遇到的问题
  3. 阿里技术专家深入讲解,SpringMVC入门到进阶,看这一篇就够了
  4. MathType总结编辑括号的类型(下)
  5. 怎么借助CrossOver安装想要的Windows程序
  6. Word2 word输入公式+文字转表格
  7. Spring 对Apache Kafka的支持与集成
  8. Ajax Status(状态码) & readyState()
  9. Bootstrap(修改中)
  10. 第4.6节 print、import及断言