A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Wen丶 中级黑马   /  2013-6-12 13:23  /  1761 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Wen丶 于 2013-6-13 13:11 编辑

RT。请各位大虾帮忙说下。谢谢了!

评分

参与人数 1技术分 +1 收起 理由
Sword + 1 好好努力

查看全部评分

12 个回复

倒序浏览
本帖最后由 Heart 于 2013-6-13 13:10 编辑

抽象类是对象的抽象,例如现在有狗狗,小鸟、鱼等动物,我们需要对它每一项进行分析,它们都有的动作为吃、睡,都有的属性为眼睛,有了抽象类,我们就不用一条一条列,直接可以抽象到动物上,动物有的动作为吃、睡,都有的属性为眼睛,这样每个动物都有了这些属性和方法,只是具体实现的时候有不同罢了。其实,抽象类有点像接口.

抽象类和接口有相识的作用,但是。net只能继承一个类,但是可以继承多个接口。
抽象类的作用是预留一个和多个方法不实现 只是定义方法的参数和返回类型 方法的实现将放在具体的子类中实现 他可以省略子类的部分代码。

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1 很给力!

查看全部评分

回复 使用道具 举报
本帖最后由 薛淑凯 于 2013-6-12 14:21 编辑

降低耦合性,提高程序可扩展性,提高代码复用率。可以实现多个接口从而完成多继承
回复 使用道具 举报
子类共性内容抽取出来,已经描述不清了,变成抽象方法,有抽象方法的就是抽象类,抽象类不一定有抽象方法
回复 使用道具 举报
  1. abstract class Animal    //定义抽象类{    String str;    Animal(String s)     //定义抽象类的一般方法   {        str=s;   }    abstract void eat();      //定义抽象方法}class Horse extends Animal     //定义继承Animal的子类{      String str;    Horse(String s)   {      super(s);      //调用父类的构造方法   }    void eat()      //重写父类的抽象方法   {           System.out.println("马吃草料!");   }}class Dog extends Animal{    String str;    Dog(String s)   {      super(s);    }    void eat()    {    System.out.println("狗吃骨头!");    }}class test{    public static void main(String args[])   {      Horse Horse1 = new Horse("马");      Dog Dog1 = new Dog("狗");      Horse1.eat();      Dog1.eat();    }}
复制代码
回复 使用道具 举报
当多个类中出现相同功能,但是功能主体不同,这时可以进行向上抽取,这时只抽取功能定义,而不抽取功能主体。
注意哈,抽象方法必须放在抽象类当中.
抽象:看不懂0.0(不是不理解这个意思,而是.....抽象的理解可以理解为:看不懂-.-..)

.....抽象(个人理解):就是看看子类中都有什么功能,然后把这些功能写在被 abstract 这个修饰符修饰
.....                                的类当中,比如,各行各业的人都走路,那么我写一个 abstract class 然后写一个走路方法
.....                                但并不在其中定义具体的方法,子类中必须覆写父类中的抽象方法,才能编译通过,否则,子类必须还是一个抽象类...
.....                                简而言之:抽象父类是用来规定子类必须覆写父类中的抽象方法.
.....                                但是想用的话,必须子类覆写父类中的方法,之后才能调用

抽象类的特点:
1,抽象方法一定定义在抽象类当中
2,抽象方法和抽象类都必须被abstract关键字所修饰
3,抽象类不可以用new创建对象,因为调用抽象方法没意义。
4,抽象类中的抽象方法要被使用,必须由子类覆写其所有的抽象方法后,建立子类对象调用。
        如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。

抽象类和一般类没有太大的不同。该如何描述事物,就如何描述事物。只不过该事物出现了一些看不懂的东西。
这些不确定的部分,也是该实物的功能,需要明确出来,但是无法定义主体。
通过抽象方法来表示。

抽象类比一般类多了个抽象函数,就是在类中可以定义抽象方法,
抽象类不可以实例化。
特殊:抽象类中可以不定义抽象方法,这样做仅仅是不让该类建立对象。

以上有毕老师视频里面的内容以及个人的理解,希望能帮到楼主

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1

查看全部评分

回复 使用道具 举报
楼主您好!如果问题得到解决请将题目改成"已解决"
编辑文章-->修改 如果问题没有得到解决请继续发问谢谢您的配合{:soso_e100:}
回复 使用道具 举报
Wen丶 中级黑马 2013-6-13 13:08:51
8#
Heart 发表于 2013-6-12 13:59
抽象类是对象的抽象,例如现在有狗狗,小鸟、鱼等动物,我们需要对它每一项进行分析,它们都有的动作为吃、 ...

谢谢了哈。
回复 使用道具 举报
Wen丶 中级黑马 2013-6-13 13:09:06
9#
薛淑凯 发表于 2013-6-12 14:13
降低耦合性,提高程序可扩展性,提高代码复用率。可以实现多个接口从而完成多继承 ...

谢了。。。
回复 使用道具 举报
吕祥艺 发表于 2013-6-12 15:39
子类共性内容抽取出来,已经描述不清了,变成抽象方法,有抽象方法的就是抽象类,抽象类不一定有抽象方法 ...

谢了。。
回复 使用道具 举报
回复 使用道具 举报
许聪聪 发表于 2013-6-12 17:36
当多个类中出现相同功能,但是功能主体不同,这时可以进行向上抽取,这时只抽取功能定义,而不抽取功能主体。
...

谢了哈。。正在看毕老师的视频,哈哈!
回复 使用道具 举报
孙百鑫 发表于 2013-6-13 06:23
楼主您好!如果问题得到解决请将题目改成"已解决"
编辑文章-->修改 如果问题没有得到解决请继续发问谢谢您 ...

:lolOK。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马