当前位置: 代码迷 >> Java相关 >> 抽象类的问题
  详细解决方案

抽象类的问题

热度:82   发布时间:2012-11-15 17:46:52.0
抽象类的问题
package test;

interface Windows{
    public void start();//开始工作
    public void end();//停止工作
    public void max();//最大化
    public void min();//最小化
}
abstract class WindowsAd implements Windows{
    public void start(){
        
    }
    public void end(){
        
    }
    public void max(){
        
    }
    public void min(){
        
    }
}
class MyWindows extends WindowsAd{
    public void start(){
        System.out.println("开始工作");
    }
}
public class AdDemo {
    public static void main(String args[]){
        new MyWindows().start();
    }

}
红字部分换成普通类class WindowsAd implements Windows来实现,结果都一样,我就想知道这里用抽象类来实现有什么好处?非常感谢指点
搜索更多相关的解决方案: void  工作  interface  Windows  abstract  

----------------解决方案--------------------------------------------------------
红色部分并非抽象类,虽然申明了抽象,但是所有方法都实现了
abstract class WindowsAd implements Windows{
    public void start();
    public void end();
    public void max();
    public void min();
}

抽象类的部分方法没有实现,自然也无法创建出实例来。


将你的源代码仅仅去掉abstract
这就是父类与子类的关系,子类复写父类的方法,表现为多态。




----------------解决方案--------------------------------------------------------
仅仅在于你不想让别人创建某个类对象的时候可以使用次技巧。
----------------解决方案--------------------------------------------------------
学习学习
----------------解决方案--------------------------------------------------------
回复 2楼 shellingford
恩恩,十分感谢
----------------解决方案--------------------------------------------------------
回复 楼主 xiaoyaoyouzi
谢谢
----------------解决方案--------------------------------------------------------
总结的不错嘛
----------------解决方案--------------------------------------------------------
回复 楼主 xiaoyaoyouzi
抽象类意义在于子类去实现方法,你可能在纠结与接口和抽象类的区别,接口里方法是没有方法体的,抽象类允许方法的实现,对于你这样在抽象类实现所有的方法,它等于不是抽象类,因为除了一个抽象类关键字,跟普通类没有区别了, 不知道说的是不是不要的意思,不喜勿喷
----------------解决方案--------------------------------------------------------
学到接口的时候你就知道了,抽象类和接口很像,都是为了进行更一般的程序设计。
你可以看下,java的集合框架,那就是一个很好学习接口和抽象类的好例子。
接口是java的精髓。
别急慢慢体会。
----------------解决方案--------------------------------------------------------
楼上讲的没错,集合框架主要就是体现出接口的作用了。我刚刚翻书回去看到了一句话“接口(interface)比抽象(abstract)的概念更进了一步,你可以把一个接口看成是一个纯抽象类”这句话来自《thinking in java》,接口主要能够处理很多操作,我认为较大作用的就是能够使软件模块间更加的好连接。接口就是java的精髓,目前我接触的就c php c++ java 四种编程语言 HTML是描述语言,c++和java都差不多,都是面向对象编程语言,我相对比学习过的两种面向对象语言,可以推测出,接口是所有的面向对象编程语言的精髓。

[ 本帖最后由 xiao金刚 于 2012-11-29 03:37 编辑 ]
----------------解决方案--------------------------------------------------------
  相关解决方案