Java 基础知识学习笔记——继承相关内容

继 承

1.       类、超类、子类

    子类不能直接使用超类的私有域,需要调用超类的方法。使用super关键字代表超类,从而使用超类的方法。因为子类的构造器不能访问超类的私有域,使用super(参数)对超类进行初始化。注意:super(参数)语句必须放在子类构造方法的第一行;如果超类没有无参构造器,并且未使用super(参数)调用其他构造器,java编译器将报错。

    多态:一个对象变量可以存储子类的变量。

    动态绑定:虚拟机根据应该执行的类和方法的签名,来决定执行哪种方法。

    final关键字:如果修饰类,该类不能被继承,该类中的方法自动成为final,域不变。fianl方法不能被重写,fianl域不能被修改。

    强制类型转换:只能在继承层次内进行类型转换;再将超类转换成子类时,应该使用instanceof进行检查。

    抽象类:包含一个或多个抽象方法的类必须被声明为抽象类,抽象类可以没有抽象方法,可以有具体的方法和域。

2.       Object

    Object类是所有类的超类,基本类型不是对象,所以没有超类,但是基本类型的数组扩展于超类。

    equals方法:比较两个对象是否相等,使用Object.equals(a,b)方法,解决a或b为null的情况。(a、b都为null返回true;a或b为null返回false;a、b都不为null则调用a.equals(b))

    equals方法要符合,自反性、对称性、传递性、一致性。使用getClass()方法或instanceof()方法判断相等,要看超类与子类的具体情况。

    hashCode方法:计算的内容要与equals方法中的内容一致。在java7中建议使用Object.hashCode(),解决参数为null的问题。Object.hash()会返回多个参数的散列码之和。使用Array.hashCode()计算数组的散列码。

    toString方法:标准格式返回类名加方括号括起来的域值。使用Array.toString()获得数组的toString结果。

3.       泛型数组列表ArrayList

    构造:ArrayList<..> al = new ArrayList<..>();数组列表可以设置初始容量,但并不含有元素;使用add()方法添加元素;使用size()方法返回元素个数;使用trimToSize()方法清除多余空间。

    访问方法:使用set()、get()方法设置与获取元素,数组列表的第一个元素是1而不是0;也可以使用toArray()方法将数组列表转换成数组。

4.       对象包装器与自动装箱

    基本类型有与之对应的对象,他们之间可以自动转化,成为装箱与拆箱。

5.       参数数量可变的方法

    使用…符,可以构造一个传递任意参数数量的方法。比如:public double max(double… values){ } 传进来的参数是一个double类型的数组。

6.       枚举类

    首先声明一个枚举类:如enum Size{SMALL,MEDIUM,LARGE,EXTRA_LARGE};所有枚举类型都是Enum类的子类,继承了一些方法toString()、valueOf()、values()、ordinal()。

7.       反射

    能够分析类能力的程序称为反射。

    Class类:获取Class类对象的方法有3种。Object类中的getClass()方法;Class.forName(String str)方法,str要求是类名或接口名;T.Class,T是任意类型的java对象。

    利用反射分析类的能力:java.lang.reflect包中有Field、Method、Constructor类,用于描述域、方法和构造器。Class类中的getFields、getMethods、getConstructors方法返回这三种类型的public修饰的数组,getDeclareFields、getDeclareMethods、getDeclaredConstructor返回所有访问权限的数组。

转载于:https://my.oschina.net/penger7/blog/794430

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值