女神镇楼
1、类的继承
继承是面向对象中的一个非常重要的概念,是的整个程序具有一定的弹性,在程序中,复用一些已经定义的完善的类,不仅可以减少软件的开发周期,还可以提高软件的可维护性和可拓展性。
继承的基本思想是基于某个父类的拓展,制造出一个新的子类,子类可继承父类的属性和方法,也可以增加原父类不具备的属性和方法,或者重写父类中的某个方法。比如平行四边形继承了四边形类,这个时候,平行四边形类将所有四边形类中的属性和方法保留下来,并拓展了新的属于自己的属性和方法。
代码示例---父类:
public classTest {public Test(){ //构造方法//SomeSentence
}protected voiddoSomething(){//成员方法
}protectedTest dolt(){//方法返回值类型为Test类型
return newTest();
}
}
代码示例---子类:
public class Test2 extendsTest {publicTest2(){//构造方法
super(); //调用父类的构造方法
super.doSomething(); //调用父类的成员方法
}public voiddoSomethingNeW(){//新增方法
}public voiddoSomeThing(){//重写父类方法
}protectedTest2 dolt(){//重写父类方法,返回值类型为Test2类型
return newTest2();
}
}
实例说明:
实例中,Test类是Test2类的父类,Test2类是Test类的子类,在子类中连同初始化父类的构造方法来完成子类的初始化操作,即可以在子类的构造方法中使用super()语句调用父类的构造方法,也可以在子类中通过super关键字调用父类的成员方法。但是在子类中没有权限调用父类中使用private修饰的方法,只可以调用父类中修饰为public或者protected的成员方法。
继承不止可以拓展父类的功能,还可以对父类的方法进行重写,重写也可以成为覆盖,就是在子类中,将父类的成员方法的名称保留,重写成员方法实现的内容,可更改成员方法的储存权限,或者修改成员方法的返回值类型,还可以将权限修饰符修改为public。
继承中还有一种特殊的重写方式,子类与父类的成员方法的返回值、方法名称、参数类型及个数完全相同,唯一不同的是方法实现内容,这种特殊的重写方式称为重构。
在java中,一切都是一对象的形式进行处理,在继承机制中,创建一个子类对象,将包含一个父类子对象,这个对象与父类创建的对象是一样的,两者的区别就在于,后者来自于外部,而前者来自子类对象内部。当实例化子类对象时,父类对象也相应被实例化,也就是说,在实例化子类对象时,java编译器会在子类的构造方法中自动调用父类的无参构造方法。
代码示例:
public classParent {
Parent(){
System.out.println("调用父类的Parent()方法");
}
}
public class Subparent extends Parent { //继承Parent
Subparent(){
System.out.println("调用子类Subparent的构造方法");
}
}
public class Subbroutine extends Subparent { //继承 Subparent
Subbroutine(){
System.out.println("调用子类Subbroutine的方法。");
}public static voidmain(String[] args) {
Subbroutine s= newSubbroutine();
}
}
运行结果:
运行结果说明:
子类Subroutine的主方法中只调用子类的构造方法实例化子类对象,并且在子类的构造方法中没有调用父类构造方法的任何语句,但是在实例化子类对象时,他会相应的调用父类的构造方法