标题:抽象类的问题
只看楼主
xiaoyaoyouzi
Rank: 2
等 级:论坛游民
帖 子:13
专家分:20
注 册:2011-10-24
结帖率:100%
 问题点数:0 回复次数:10 
抽象类的问题
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 
2012-11-15 17:46
shellingford
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:19
帖 子:228
专家分:1348
注 册:2010-8-9
得分:0 
红色部分并非抽象类,虽然申明了抽象,但是所有方法都实现了
abstract class WindowsAd implements Windows{
    public void start();
    public void end();
    public void max();
    public void min();
}

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


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



2012-11-15 19:52
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
得分:0 
仅仅在于你不想让别人创建某个类对象的时候可以使用次技巧。

My life is brilliant
2012-11-17 15:51
缘聚ㄨ爷
Rank: 2
等 级:论坛游民
帖 子:35
专家分:51
注 册:2012-8-7
得分:0 
学习学习
2012-11-19 08:41
xiaoyaoyouzi
Rank: 2
等 级:论坛游民
帖 子:13
专家分:20
注 册:2011-10-24
得分:0 
回复 2楼 shellingford
恩恩,十分感谢
2012-11-19 09:21
xiaoyaoyouzi
Rank: 2
等 级:论坛游民
帖 子:13
专家分:20
注 册:2011-10-24
得分:0 
回复 楼主 xiaoyaoyouzi
谢谢
2012-11-19 09:21
szgg520
Rank: 5Rank: 5
等 级:职业侠客
威 望:3
帖 子:79
专家分:307
注 册:2011-6-13
得分:0 
总结的不错嘛

[url=http://www.]深圳复印机出租[/url]
2012-11-19 09:24
泰迪熊
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2012-9-5
得分:0 
回复 楼主 xiaoyaoyouzi
抽象类意义在于子类去实现方法,你可能在纠结与接口和抽象类的区别,接口里方法是没有方法体的,抽象类允许方法的实现,对于你这样在抽象类实现所有的方法,它等于不是抽象类,因为除了一个抽象类关键字,跟普通类没有区别了, 不知道说的是不是不要的意思,不喜勿喷
2012-11-20 22:34
别时茫茫
Rank: 2
来 自:安徽蚌埠
等 级:论坛游民
威 望:1
帖 子:29
专家分:72
注 册:2011-10-5
得分:0 
学到接口的时候你就知道了,抽象类和接口很像,都是为了进行更一般的程序设计。
你可以看下,java的集合框架,那就是一个很好学习接口和抽象类的好例子。
接口是java的精髓。
别急慢慢体会。
2012-11-28 19:04
xiao金刚
Rank: 2
来 自:广东
等 级:论坛游民
威 望:4
帖 子:67
专家分:38
注 册:2010-9-13
得分:0 
楼上讲的没错,集合框架主要就是体现出接口的作用了。我刚刚翻书回去看到了一句话“接口(interface)比抽象(abstract)的概念更进了一步,你可以把一个接口看成是一个纯抽象类”这句话来自《thinking in java》,接口主要能够处理很多操作,我认为较大作用的就是能够使软件模块间更加的好连接。接口就是java的精髓,目前我接触的就c php c++ java 四种编程语言 HTML是描述语言,c++和java都差不多,都是面向对象编程语言,我相对比学习过的两种面向对象语言,可以推测出,接口是所有的面向对象编程语言的精髓。

[ 本帖最后由 xiao金刚 于 2012-11-29 03:37 编辑 ]
2012-11-29 03:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-387163-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.258952 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved