| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1201 人关注过本帖
标题:抽象类的问题
只看楼主 加入收藏
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
快速回复:抽象类的问题
数据加载中...
 
   



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

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