Java——继承、枚举
来源:互联网 发布:20m网络限速多少合适 编辑:程序博客网 时间:2024/05/21 13:54
关于继承的基本知识就不赘述了。关键字:extends,单继承,方法重写,super,this,final,子类父类,抽象类等。
继承
- 多态
一个对象变量可以指示多种实际类型的现象被称为多态。
子类的每个对象也是超类的对象,因此可以将子类的对象赋给超类变量。 - 动态绑定
在运行时能够自动的选择调用哪个方法的现象称为动态绑定。 - 方法调用过程
①编译器查看对象的声明类型和方法名。将所有重载的方法列举出来。
②查看调用方法时提供的参数类型。进行重载解析,如果匹配不到或者匹配到多个抛出异常。
③如果是private .static.final方法。编译器可以确定是哪个方法,那么这种调用就是静态绑定。如果要依赖隐式参数,那么在运行时实现动态绑定。
④如果是动态绑定调用。如果隐参类型刚好与子类方法匹配,直接调用,否则根据方法表搜索。 - 完美的equals方法
public boolean equals(Object otherobj){ //是否引用同一对象 if(this==otherobj)return true; //检测是否为null if(otherobj==null)return false; //是否属于同一个类,如果子类有改变用getClass,语义都统一用instanceof if(getClass()!=otherobj.getClass()) return false;//或者 if(!(otherObj instanceof ClassName)) return false; //转换为相应类型变量 ClassName obj=(ClassName) otherobj; //比较==比较基本类型,用equals比较对象域 return field1==oherobj.field1 && Object.equals(filed2,oherobj.filed2) &&.。。;}
枚举类
- 定义
最简单的
public enum Size{SMALL,MEDIUJ,LARGE,EXTRA_LARGE};
复杂的
public enum Season { // 枚举列表必须写在最前面 winter, spring, summer, fall; private final static String l = "flower"; public static Season getBest() { if (location.equals("flower")) return spring; else return summer; } }
比较枚举类是只需要使用==就行。
- 用途
用户常量,或者switch中
使用例子
//传入int值返回月份名称public enum Mon { 一月, 二月, 三月; private static final Mon[] ENUMS = Mon.values(); public static Mon get(int i){ if (i < 1 || i > 3) { System.out.println("超出范围"); } return ENUMS[i-1]; }}
阅读全文
0 0
- Java——继承、枚举
- Java 枚举类 继承Interface
- Java——枚举
- java高新技术—枚举
- eclipse快捷键、java继承、枚举相关
- JavaSE——Java枚举
- JAVA基础——枚举
- JAVA加强——枚举
- JAVA高新技术——枚举
- Java——继承
- java——继承
- java——继承
- <java——继承>
- JAVA——继承
- JAVA——继承
- 黑马程序员—JAVA枚举
- Java 常用类—枚举
- java新特性—枚举
- ionic配置自定义keystore签名文件并直接安装已签名apk到手机
- Codeforces Round #419 (Div. 2) B. Karen and Coffee (差分标记)
- xxx is not in the sudoers file.This incident will be reported.的解决方法
- java 中流程控制语句switch以及break,continue,return的比较
- 一头雾水?也许你该学学结构化设计思维
- Java——继承、枚举
- leetcode 498. Diagonal Traverse
- 应用程序调用_驱动B调用_驱动A
- 用c/c++实现linux下检测网络接口状态
- springMVC 通过服务器下载功能
- 网易云课堂 python网络爬虫实战
- ubuntu下useradd与adduser区别,新建用户不再home目录下
- 解析UML用例图中include与extend的区别
- UI、交互、产品设计的自学方法