好贷网好贷款

一个抽象类的问题

发布时间:2016-12-3 17:43:07 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"一个抽象类的问题",主要涉及到一个抽象类的问题方面的内容,对于一个抽象类的问题感兴趣的同学可以参考一下。

今天在论坛上看到有人问的一个问题:      为什么有些抽象类可以通过其它类的方法得到它的对象,然后再调用这个抽象类里面的方法,比如:    Graphics 类    Graphics g ;    g = 窗体.getGraphics() ;    g.drawImage() ;    有人能替我解释一下吗?  有人给的一个很好的回答,特摘抄下来:    自己写了个例子,希望可以对楼主有点帮助abstract class A{  public void get();  public void set();}class B extends A{  public void get(){  //自己的实现; }  public void set(){  //自己的实现; }}class C exntends A{  public void get(){  //自己的实现; }  public void set(){  //自己的实现; }}class d { public static A getObj(){    return new c(); }}A obj=d.getObj();obj.get();       //调用的是Class c 的get()方法 现在我们来看下class d中的getObj返回类型,它可以返回A,也可以返回C,显然返回A更加能用一点,因为这样一来,它可以返回的对象更加广泛,比如可以把new C(),改成new B(),以及其它任何继承了A的子类都可以,在调用方法的时候,根据程序的多态就可以调用子类中相应的实现方法了。这种情况在接口也很多见。总之,不论是接口,还是抽象类,它们本身是不可能有对象的,方法中返回的只不过是实现了这个接口,或者继承了这个抽象类的实体类的一个对象。

上一篇:Linux嵌入式开发实战总结
下一篇:java获取路径几种途径

相关文章

相关评论