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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   米奇 中级黑马   /  2014-3-22 23:28  /  1505 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由   米奇 于 2014-3-23 11:19 编辑

都在什么情况下使用呢?

6 个回复

倒序浏览
抽象类和一般类没有太大的区别。
该如何描述事物,就如何描述事物,只不过该事物中出现了一些看不懂的东西。
这些不确定的部分,也是该事物的功能,需要明确出现。但是无法定义主体

抽象类比一般类多了抽象方法
抽象类不可以实例化

特殊:抽象类中可以不定义抽象方法,这样做仅仅是不让该类建立对象

接口:初期理解,可以认为是一个特殊的抽象类
            当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示

class用于定义类
Interface用于定义接口

接口定义时,格式特点:
1,接口中常见定义:常量,抽象方法
2,接口中的成员都有固定修饰符
        常量:public static final
        方法:public abstract

接口是不能创建对象的,因为有抽象方法。
需要被子类实现,子类对抽象接口中的方法全部覆盖后,子类才可以实例化
否则子类是一个抽象类

接口可以被类多实现,也是对多继承不支持的转换形式。java支持多实现。
回复 使用道具 举报
接口是一个特殊的抽象类!
回复 使用道具 举报
接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,

另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。

还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用.
建议楼主多看两遍视频,慢慢就会理解了!加油!
回复 使用道具 举报
抽象类的特点:
1,抽象方法一定在抽象类中。
2,抽象方法和抽象类都必须被abstract关键字修饰。
3,抽象类不可以用new创建对象。因为调用抽象方法没意义。
4,抽象类中的抽象方法要被使用,必须由子类复写起所有的抽象方法后,建立子类对象调用。
abstract class Student
{
        abstract final void study();


class ChongCiStudent extends Student
{
        void study()
        {
                System.out.println("chongci study");
        }
}


接口:初期理解,可以认为是一个特殊的抽象类
        当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。

接口:是不可以创建对象的,因为有抽象方法。
需要被子类实现,子类对接口中的抽象方法全都覆盖后,子类才可以实例化。
否则子类是一个抽象类。

interface Inter
{
        public static final int NUM = 3;
        public abstract void show();
}

interface InterA
{
        public abstract void show();
}

class Demo
{
        public void function(){}
}

class Test extends Demo implements Inter,InterA
{
        public void show(){}
}


评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

回复 使用道具 举报 1 0
1变量     抽象类对变量无限制;接口中所有的变量必须是public static final
2构造方法   抽象类,子类通过构造方法链调用构造方法;接口没有构造方法
3方法    抽象类,无限制;接口,所有方法必须是公共的抽象实例方法
回复 使用道具 举报
kuchan 初级黑马 2014-3-23 21:17:20
7#
抽象类和接口有一个共同特点:都不能使用new操作符实例化
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马