概论
继承、多态和方法改写是Java面向对象的三大基本概念,与从同时这三种概念也是面试官最喜欢问的面试。下面我将详细介绍这三个部分的内容。
继承:
继承是面向对象的三大特性之一,继承可以减少代码冗余,是实现代码重用的手段之一。
继承语法结构:
访问限定符 class <SubClass> extends<SuperClass>{
//内部方法
}
调用父类成员
访问父类构造方法:super(参数)
访问父类属性/方法:super.<父类属性/方法>
子类实例化: 子类中所有的构造函数默认都会访问父类中的空参数的构造函数。当然,如果子类中指定了访问父类带参数的构造函数,就不会访问父类默认的构造函数。意味着如果父类中没有默认的构造函数,子类尝试调用父类的默认构造函数,程序就会报错。
Object类: Object类是所有类的父类。
方法重写
在Java和其他一些高级面向对象的编程语言中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
方法重写要求:
1、重写方法和被重写的方法必须具有相同的方法名
2、重写方法和被重写方法必须有相同参数列表
3、重写方法的返回值类型必须和被重写方法的返回值相同或者为子类
4、重写方法不能缩小被重写的方法的访问权限
多态
多态是指能够呈现出多种不同的形式或形态。
向上转型: 子类向父类的转换称为向上转型
<父类型><引用变量名>=new<子类型>();
向下转型: 将一个指向子类对象的父类引用赋给一个子类引用,即父类类型转换为子类
<子类型><引用变量名>=(<子类型>)<父类型的引用变量>;
多态具有:可替代性、可扩充性、接口性、灵活性和简化性。