今日笔记

  重写Overrid与重载Overload的区别

重写

  子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。

重载 

  就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。

  调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。

  重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。

抽象类

当父类的某些方法不确定时,可以用abstract关键字来修饰该方法[抽象方法],用abstract来修饰该类[抽象类]。

  我们都知道,父类是将子类所共同拥有的属性和方法进行抽取,这些属性和方法中,有的是已经明确实现了的,有的还无法确定,那么我们就可以将其定义成抽象,在后日子类进行重用,进行具体化。这样,抽象类也就诞生了。

  例如,定义了“动物”父类,其中“动物名称”和“动物年龄”属性已经明确了,但是“动物叫”的方法没有明确,此时就可以将“动物叫”定义为抽象方法。

  所以,抽象类是为了把相同的但不确定的东西的提取出来,为了以后的重用。定义成抽象类的目的,就是为了在子类中实现抽象类。 

用abstract修饰的类,即抽象类;用abstract修饰的方法,即抽象方法。

抽象方法不能有方法主体。格式如下:

abstract void xxx();

抽象类不能被实例化。因为抽象类中方法未具体化,这是一种不完整的类,所以直接实例化也就没有意义了。

抽象类中不一定要包含abstrace方法。也就是了,抽象中可以没有abstract方法。

一旦类中包含了abstract方法,那类该类必须声明为abstract类。

原文地址:https://www.cnblogs.com/yonkki/p/9795159.html