java中怎样调用抽象类中的非抽象方法?(对原文做修改,加入一点自己理解)

问:

例如:我有一个抽象类BaseStudentDAO,类中有一个非抽象方法load,我该怎样调用load这个方法?



答:

想调用BaseStudentDAO中的非抽象方法load,如果load方法是static的,则可以直接BaseStudentDAO.load()就可以了;如果是非static的则必须需要一个继承的非抽象类,然后用这个非抽象类的实例来调用load方法,或者这个非抽象类的实例被cast成BaseStudentDAO,然后调用。
如:继承BaseStudentDAO的非抽象类:BaseStudentDAOSub,可以用一下方法调用:
1、BaseStudentDAOSub bsds = new BaseStudentDAOSub(); bsds.load();
2、BaseStudentDAO bsd = new BaseStudentDAOSub(); bsd.load();


当然,也要考虑这个方法应该是public或protected的。如果是private的就一切免谈了。




摘自百度知道xuezi_duan 


自己一点理解:

1,总之是子类的对象在使用非抽象的方法

2,关于抽象类和抽象方法的简单想法:

抽象类,使用抽象类相当于预定义,可以统一修改。他是一个统称,是一个相同内容特点的集合抽象。

抽象方法,是给子类提供一个统一接口。具体实现再子类中。

3,在网上又学到一种新方法,在抽象类的非抽象方法前(也就是该例中的load)前加static,可以在main中用该抽象类.非抽象方法(也就是BaseStudentDAO.load();)来调用该抽象类中的非抽象方法。

4,另外,子类如果不是抽象类,那么必须实现父类的抽象方法。子类如果是抽象类则不一定要实现父类的抽象方法。



猜你喜欢

转载自blog.csdn.net/outer_star/article/details/8919116