首页 > 代码库 > 初识继承
初识继承
继承是面向对象的重要特征之一。拓展一个已有的类,并具有该类的属性和行为创建的新类过程,叫继承。已有的类叫父类,新类叫子类。
类与类的关系有组合(has-a)和继承(is-a)。继承使用extends这个关键字来声明。继承的优点:
a、代码的可重复率;
b、父类的属性和行为可以用于子类;
c、子类可以拓展父类的属性和行为;
d、设计应用程序变得更加简单。
在Java中一个类不可以同时继承多个类。所有类的根类是Object类。重写是在子类中声明与父类相同的方法,继承父类,改变父类方法。子类重写父类的规则:
a、子类方法返回值类型、方法名、参数列表必须与父类相同;
b、访问修饰符必须不小于父类中的访问修饰符;
c、子类中重写的异常不能抛出比父类更多的异常。
构造方法不能被子类重写。关键字super用于调用父类的构造器,并且super()必须是构造器的第一条语句。如果构造器没有显示地使用super关键字,那么编译器会自动添加一个无参数的super()来调用父类的构造器。如果父类没有无参数的构造器,调用空括号super()不会通过编译。因此子类构造器需要显示地调用父类构造器,并将恰当的实际参数传递给父类的构造器。在子类的要检测的方法前加“@override”,可以强制检测当前方法是否重写父类方法。
关键字super,代表这个类对应的父类对象,用于子类非静态方法。super.***或super.***()代表每个类中指向父类对象部分的引用;super()代表调用父类中指定的构造器。关键字final是可选修饰符,final修饰变量,就成常量;修饰类,类就是终态类,不可继承;修饰方法,方法就不可重写。
区别:重写(override)--子类中的方法与父类中的方法相同(参数列表相同);重载(overload)--一个类中的一个方法与另一个方法相同(参数列表不同)。