目录
1. 继承
使用extends关键字来继承父类。
继承是is a 的关系(子类is a父类)。
Java只能单继承。
通过继承,子类能获取父类中所有的属性和方法,不过由于权限的问题不能访问父类中用private修饰的属性和方法。
继承的作用
- 减少了代码的冗余,提高了代码的可重用性。
- 有利于功能的扩展。(在子类中可以额外增加方法或者重写父类的方法)
- 为多态提供前提。
2. 方法的重写
子类可以对从父类中继承来的同名同参数的方法进行重写覆盖,此后子类中或者子类对象调用该方法时,调用的是子类中重写的方法。
子类和父类中同名同参数的方法要么同时声明成非static(这时候是重写),要么同时声明成static(这时候不是重写,因为static是属于类的,子类不能覆盖父类的static方法)。
重写的要求
- 要求同名同参数且不能是static的方法。
- 重写的方法返回值类型不能比父类方法的大。(因为在多态时可以将父类引用指向子类对象,但不能将子类对象赋值给父类引用。如果子类方法的返回值比父类方法的返回值大的话就会出现将父类对象赋值给子类引用的情况。)
- 重写的方法的权限修饰符不能比父类方法的小。(同上,如果比父类方法小的话,在将子类对象赋值给父类引用后,父类引用不能调用子类重写的方法。)
- 重写方法抛出的异常不能比父类方法的大。(同上,调用父类方法的方法会提供一个针对于父类方法抛出的异常的处理方法,如果比父类方法大的话,该处理没办法处理父类异常的父类。)
重写注意事项
- 子类不能重写父类中声明为private权限的方法。(也就是说,如果子类中提供了一个和父类同名同参数的方法时,对于从父类继承下来的调用了父类在该名字的方法,调用时内部仍是调用父类的方法。)
- 对于属性不存在所谓的重写。
3. super关键字
super关键字表示:父类的
super调用父类构造器格式:super(参数列表)
注意:super调用父类构造器必须放在首行。
4. 子类对象实例化过程
首先调用子类中的代码块在调再调用子类构造器,因为子类构造器调用了父类的构造器所以会先执行父类的代码块再执行父类的构造器最后执行子类构造器中剩下的内容。(要注意类在第一次加载的时候还会先调用static代码块。)
5. 多态
多态时运行时行为。
将子类对象赋值给父类引用就叫多态。
调用子类重写后的方法时,使用的是子类的方法。
注意点:多态只适用于方法,不适用于属性。对于使用多态后调用子父类同名的属性调用的是父类的属性。
6.instanceof
判断一个对象是否属于某个类或其子类
7. ==和equals的区别
8. 包装类的使用
基本数据类型<---->包装类:自动装箱和自动拆箱
基本数据类型--->String:String类的valueOf()
String--->基本数据类型:相应包装类的parseXxx()
String--->包装类:包装类构造器
包装类--->String:toString()