Java面向对象三大特征
1.重写
**概念:**子类继承父类的以后,可以对父类中同名参数的方法进行覆盖的操作。
应用: 重写以后,创建子类对象后,子类调用父类中同名同参数的方法时,实际上调用的是子类重写后的方法。
**注意:**子类重写的方法的方法名和形参列表要与父类的保持一致;
子类重写方法的访问修饰符不小于父类中被重写的访问修饰符;
子类不能重写父类中private修饰的方法;
子类重写的方法返回值类型要与父类的相同或者是父类中返回类型的子类;
子类重写的方法抛出的异常类型不大于父类父类被重写的方法抛出的异常类型。
2.多态性
- 对象的多态性:父类的引用指向子类的对象。
- 编译看左边,运行看右边。
- 多态的使用前提是:类的继承关系;方法的重写
虚方法
子类定义的与父类同名同参数的方法,在多态的情况下,将此时父类的方法称为虚方法。
final 关键字
- final可以修饰的结构:类 、方法、变量
- 修饰类,此类不可以被其他类继承,如String类、System类、StringBuffer类等。
- 修饰方法,此方法不可以被重写。
- 修饰变量,此变量可以看做是常量。
static 关键字
- static 可以修饰:属性、方法、代码块、内部类。
- 静态变量的加载要早于对象的创建。
- 静态方法中,只能调用静态的方法或属性。
abstract关键字
- abstract不能用来修饰属性、构造器
- 不能修饰私有的方法、静态方法、final的方法、final的类
接口
- 使用interface来定义
- jdk7及以前,只能定义全局常量和抽象方法。全局常量public static final 的,但是书写时可以省略不写;抽象方法:public abstract的。jdk8后还可以定义静态方法、默认方法。
- 接口不能定义构造器意味着接口不可以实例化。
- 接口通过让类去实现(implements)的方式来使用接口。实现类如果没有覆盖接口中所以的抽象方法,则此实现类仍为抽象类。
- java类可以实现多个接口,弥补了java单一继承的局限性。
- 接口与接口可以继承。