之所以出现类的继承,我认为最大的原因还是为了减少代码的编写。因为有许多的类有一些的共性,所以人们便把这些共有的属性和方法作为最基本的属性方法写入一个类中,这个类称为父类,在编写某一个特定的类的时候继承该父类的属性和方法,再添加一些此类特有的属性和方法,或者对父类的方法进行重写,这个类称为子类。
父类与子类确实有类似与人类的继承关系,所以人们将之形象的称为“父子”,一个父类可以有很多子类,但是一个子类不可能有多个父类。从数学上的包含与被包含的关系上来看,父类应该包含于子类,但是从类的自动转换来看,一个父类可以包含继承它的千千万万的子类。子类实例化后,可以作为引用参数传递给函数,而这个函数的参数类型只需要声明为该子类继承的父类即可。这是自动转型的格式之一,我认为也是十分有使用价值的一种格式,能够有效避免代码的累赘冗长,一个函数即可调用许多种类的类中的方法。
自动转型的另一种格式:父类名 对象名= new 子类名(),这到种格式实例化的对象引用传递函数中,如果函数调用了子类有而父类没有的方法的话就会报错,但是如果调用父类中的方法,并且该方法在子类中被重写,那么调用的也只是被子类重写后的方法。[size=medium][/size][size=small][/size]
父类与子类确实有类似与人类的继承关系,所以人们将之形象的称为“父子”,一个父类可以有很多子类,但是一个子类不可能有多个父类。从数学上的包含与被包含的关系上来看,父类应该包含于子类,但是从类的自动转换来看,一个父类可以包含继承它的千千万万的子类。子类实例化后,可以作为引用参数传递给函数,而这个函数的参数类型只需要声明为该子类继承的父类即可。这是自动转型的格式之一,我认为也是十分有使用价值的一种格式,能够有效避免代码的累赘冗长,一个函数即可调用许多种类的类中的方法。
自动转型的另一种格式:父类名 对象名= new 子类名(),这到种格式实例化的对象引用传递函数中,如果函数调用了子类有而父类没有的方法的话就会报错,但是如果调用父类中的方法,并且该方法在子类中被重写,那么调用的也只是被子类重写后的方法。[size=medium][/size][size=small][/size]