java使用extends来实现扩展。
继承的优点:1、的可重用性。2、父类的属性和方法可用于子类。3、设计应用程序变的更加简单。4、子类可以扩展父类的属性和方法
父类:就是一个不断的抽象过程。
super():表示调用父类的构造方法,子类对象产生之前会先产生一个父类对象,子类当中定义的方法和属性在父类对象的基础上进行扩展。
子类继承父类,在构造方法中必须先产生父类对象,super()默认调父类构造方法,那么如果父类中,没有无参构造方法,那么必须显示的调用。
java运行时环境利用继承创建类的步骤:1、创建子类。2、初始化所有超类的类变量。3、初始化所有子类的类变量。4、执行超类的构造函数。5、执行子类的构造函数。
如果一个类中须要使用另外一个类必须使用import将该类导入;
构造方法修饰符:如果一个类的构造方法私有,表示别的类不能产生该类的对象,同时该类也不能有子类。如果一个类的构造方法缺省,表示本包中的类可以产生该类的对象。同时本包中的类才能继承;如果一个类的构造方法是protected表示不同包的子类可以调用该构造方法产生父类对象。构造方法不能被继承。
在java中,类的继承是单根继承,就是说一个类如果继承了另一个类之后,不能再继承其他类。
如果一个类被定义为final 那么就不能有继承的子类,也就不能被扩展。
多态允许一个父类变量引用子类的对象,允许一个接口类型变量引用实现类对象,反过来却不行。
多态表现在重载和重写上:
重载:在同一个类中有多个方法,方法名相同,但参数的个数,类型,参数的顺序不同,和返回值无关;重载在虚拟机底层编译:参数列表和方法名一起编译。
重写:不同的事物对同一个事物有不同的反应;发生在父类和子类之间;父类有一个方法,当子类也拥有相同的方法时这就叫重写。方法名相同,参数相同,返回类型类型也相同;一但一个类中的方法调用后,会优先于父类中的相同的方法,子类若没有重写父类的方法,那么调用父类方法,子类重写父类方法时要求方法修饰符要比父类更大或相等。
动态绑定:用父类的变量指向所有子类的对象,子类拥有完整的父类对象。可以任意的绑定子类的其中一个对象。从而现实不同的结果,并不是所有的父类方法都被重写,当一个方法申明为final修饰符时这个方法就不能被重写;子类重写父类方法后,可以通过super()方法调用父类。当动态绑定时,变量只能调用该变量类型中定义的方法和属性。
final修饰符:final这个修饰符可用于类前面,方法前面和变量前面;用于类前面,表示这个类不能被继承,用于方法前面表示父类方法不能被子类所重写;用于变量前面表示如果是基本数据类型,表示该变量是个常量,它的值不能被更改,如果变量是引用数据类型表示变量的引用不能再指向新的对象。
|