Java——继承、枚举

关于继承的基本知识就不赘述了。关键字: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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值