面向对象程序设计-类的多态
目录
类的多态性
重载与重写的区别
类的多态性
多态性是指在父类中定义的属性和方法被子类继承后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及其各个子类中具有不同的含义。类的多态性可以从三个方面体现:①方法的重载 ;②子类重定义从父类继承来的成员(重写);③父类引用指向子类对象,例如Parent p = new Child()。
重载与重写的区别
如果同一个类中包含了两个或两个以上的方法名相同,但参数列表不同(与返回值类型无关)的方法,称为方法重载。所谓的重载就是要求“两同一不同”:①同一个类中方法名相同;②参数列表不同。对于方法其他部分(返回值类型,修饰符等)与重载没有任何关系。参数列表不同包括:①参数个数不同;②参数类型不同;③参数顺序不同(很少使用)
很多初学者经常将重写与重载混淆,重写方法需要遵循以下规则:①父类方法与子类重写的方法参数列表、返回值类型与方法名必须相同;②子类重写的方法不能拥有比父类方法更低的访问权限,而public权限最低,private权限最高;③当父类中方法的访问权限修饰符为private时,该方法在子类中是不能被重写的;④如果父类方法抛出异常,那么子类重写的方法也要抛出异常,而且抛出的异常不能多于父类中抛出的异常(可以等于父类中抛出的异常)。