黑马程序员__Java抽象类和多态总结
来源:互联网 发布:影视行业 知乎 编辑:程序博客网 时间:2024/05/21 10:12
------- android培训、java培训、期待与您交流! ----------
抽象类的总结
A. 抽象类的定义
抽象方法: 方法使用abstract修饰,没有方法体(大括号),末尾直接分号结束
抽象类:类的定义上,用abstract修饰
B. 抽象类的特点
不能实例化对象 new 抽象类是错误的
抽象类中,可以具有构造方法,也可以重载很多构造方法,但是构造方法第一行也是super()
抽象类,可以没有抽象方法,但是不能建立对象
抽象类,可以有普通方法,就是有大括号的方法,子类继承后直接使用
抽象类,是这个继承体系中最共性的内容
C. 抽象类的使用
需要定义子类,继承抽象了,重写全部抽象方法,建立子类的对象
如果子类重写了部分抽象方法,子类还是一个抽象类
D. 抽象类的案例,Java学院 AbstractTest.Java
多态的总结
好处:可以无限的扩展子类
A. 父类或者接口指向自己的子类对象
Fu f = new Zi(); NO ~~ Zi zi = new Fu();
B. 调用方法的时候,运行的是子类重写后的方法
C. 调用成员变量的时候,运行的是父类的成员变量
D. 在多态中,只能调用子类父类共有方法,不能调用子类的特有方法!!多态的弊端
E. 调用子类特有方法,必须进行类型的强制转换,将提升为父类类型的子类对象,转回子类的类型,手动!!
F. 保证程序的安全性,避免发生类型转换异常ClassCastException,采用instancof运算符,进行健壮性判断
变量 instanceof 类名 如果是返回真 类 instanceof 变量--语法错误
A. 抽象类的定义
抽象方法: 方法使用abstract修饰,没有方法体(大括号),末尾直接分号结束
抽象类:类的定义上,用abstract修饰
B. 抽象类的特点
不能实例化对象 new 抽象类是错误的
抽象类中,可以具有构造方法,也可以重载很多构造方法,但是构造方法第一行也是super()
抽象类,可以没有抽象方法,但是不能建立对象
抽象类,可以有普通方法,就是有大括号的方法,子类继承后直接使用
抽象类,是这个继承体系中最共性的内容
C. 抽象类的使用
需要定义子类,继承抽象了,重写全部抽象方法,建立子类的对象
如果子类重写了部分抽象方法,子类还是一个抽象类
D. 抽象类的案例,Java学院 AbstractTest.Java
多态的总结
好处:可以无限的扩展子类
A. 父类或者接口指向自己的子类对象
Fu f = new Zi(); NO ~~ Zi zi = new Fu();
B. 调用方法的时候,运行的是子类重写后的方法
C. 调用成员变量的时候,运行的是父类的成员变量
D. 在多态中,只能调用子类父类共有方法,不能调用子类的特有方法!!多态的弊端
E. 调用子类特有方法,必须进行类型的强制转换,将提升为父类类型的子类对象,转回子类的类型,手动!!
F. 保证程序的安全性,避免发生类型转换异常ClassCastException,采用instancof运算符,进行健壮性判断
变量 instanceof 类名 如果是返回真 类 instanceof 变量--语法错误
多态类的总结
多态中的实现的细节,很重要很重要
多态中的成员变量:
编译时期,如果父类中定义了这个成员变量,编译成功,否则编译失败
运行时期,运行父类中定义的成员变量
多态中的静态成员变量:
编译时期,如果父类中定义了这个成员变量,编译成功,否则编译失败
运行时期,运行父类中定义的成员变量
多态中的非静态成员方法:
编译时期,如果父类中定义了这个成员方法,编译成功,否则编译失败
运行时期,运行子类重写后的方法
多态中的静态成员方法:
编译时期,如果父类中定义了这个成员方法,编译成功,否则编译失败
运行时期,运行父类中定义的成员方法
小规律:
除了非静态的成员方法以外,编译运行都看父类
只有非静态的成员方法,编译看父类,运行看子类
非静态的成员方法,编译看左边,运行看右边
其他情况,编译运行全看左边
------- android培训、java培训、期待与您交流! ----------
0 0
- 黑马程序员__Java抽象类和多态总结
- 黑马程序员__JAVA基础加强--类加载器和代理总结
- 黑马程序员——多态抽象类和抽象方法以及接口的总结
- 黑马程序员__java基础加强总结
- 黑马程序员__JAVA高新技术--反射、注解总结
- 黑马程序员-抽象类总结
- 黑马程序员__Java中的代理类
- 黑马程序员__JAVA基础__String类
- 黑马程序员__Java概述
- 黑马程序员--继承,覆盖,抽象类,和多态
- 黑马程序员--继承,覆盖,抽象类,和多态
- 黑马程序员--Java抽象类和接口总结
- 黑马程序员__java多线程总结(含经典实例!)
- 黑马程序员:Java基础总结----抽象类
- 黑马程序员__java面向对象__构造函数和继承
- 黑马程序员__Java中的注解
- 黑马程序员__Java高新技术一
- 黑马程序员__Java高新技术二
- poj2387(最简单的最短路)
- 静态断言assert
- Linux基础命令学习
- leetcode笔记:Longest Consecutive Sequence
- 用javadbf从数据库导出数据成dbf文件
- 黑马程序员__Java抽象类和多态总结
- Android测试教程10--monkey Test
- 说说为什么阿里要破冰?
- 我曾经做过的插件
- Xcode常用快捷键
- 全排列POJ1256Anagram
- git get all different files between two revisions
- Fragment的两个子类ListFragment和DialogFragment的应用Demo
- BestCoder Round #64 (div.2) HDOJ5587 Array(dfs)