初学者谈java抽象类和上转型对象之实用意义
在“继承”这一操作中,用抽象类来写父类其实用普通类也可以实现。
那为什么要使用抽象类呢?
如果用普通类作为父类,那在此父类中供其子类重写的方法必须要有方法体,如:
public int area() {return 0;}
( 方法体为{return 0;} )
而这一方法体在程序中其实是无用的(因为会被子类的重写覆盖掉),但由于语法规定不得不填入,这就造成了程序结构不严谨统一(自己在后来阅读时也可能懵一下)。
使用抽象类abstract来写父类就很好的避免了上述问题。
使用多态设计程序(可理解为在程序中设置父类-子类结构),父类使用抽象类,作用为声明子类都要用到的变量(属性)和方法(行为),即起到一个“初始化”的作用;子类继承、重写并使用父类中初始化的各种东西来实现其具体功能(当然也可以新增变量、方法,但这些就与此父类-子类体系脱离开了)。
在主类中用父类声明变量(对象),用其子类将变量(对象)实例化:
Animal a = new Tiger();
这个a就是所谓的”上转型对象“。这个上转型对象a能够使用父类”初始化“的行为们。而“行为”具体怎么走取决于:是哪个子类初始化了它。
浙公网安备 33010602011771号