Java中的继承
继承是多态的前提,如果没有继承就没有多态
-
继承:
(1)定义:子类继承父类,允许子类拥有所有的属性和方行为。
(2) 优缺点:
优:提高了代码的复用性;
缺:由于继承会有多层的继承关系,会提高类之间的依赖关系,耦合度会变高。
(3)语法:
权限修饰符 class 类名 extends 类名{}
-
继承注意事项:
(1)一个子类继承父类,子类可以使用所有的属性和方法。
(2) 使用继承以后,父类所有的属性(私有的除外)和方法子类都可以获取到;
(3)子类除了使用父类定义的属性(私有的除外)和方法,可以自己定义其他的属性和方法;
(4)一个子类可以派生别的子类;
(5)一个父类可以有多个子类,一个子类有且仅有一个父类。Java的继承是单继承
注:所有类的基类都是Object,Java所有类的父类,如果一个类没有显示的继承某个类,那么就继承了Object,
-
方法重写
如果父类的方法满足不了子类的要求时,子类可以对父类的方法进行重写。
重写要求:
(1)要求子类重写的方法名,参数列表,返回值类型必须与父类完全一致;
(2)要求子类重写方法的访问修饰符权限不能低于父类方法的修饰符权限;
(3)子类方法和父类方法必须同为static或者非static。 -
重载(overload)和重写(override)的区别:
(1)重载必须在同一个类中,重写必须存在在继承关系中;
(2)重载要求方法名相同,参数列表必须不同,和返回值无关;而重写要求方法名、参数列表,返回值类型必须和父类一致 -
super关键字的作用:
(1) 可以修饰属性,方法,构造方法;
(2)当子类和父类的属性出现重名时,默认会调用子类的属性,可以通过“super.属性名”的方式显示的调用父类声明的同名属性;
(3)子类重写父类方法后,若子类想再次调用父类被重写的方法,可以通过“super.方法名()”的方式调用父类方法;
(4)super可以修饰构造方法,通过子类构造方法中使用“super(形参)”来显示的调用父类的构造方法。
注:
(1)super(形参)必须声明在首行;
(2)说明this(形参)和super(形参)只能用一个。
(3)在构造方法中不显示的通过super(形参)的方式调用父类的构造方法,默认会调用父类无参的构造方法。 -
访问修饰符
它可以用来修饰 类、变量、方法、接口;
public:公共的,在当前项目下任何地方都可以访问;
protected:受保护的,在同一个包下或者在其他子类中可以访问;
default:缺省, 自同一个包下可以访问;
private:私有,在当前类下面访问。 -
子类对象实例化的全过程