黑马程序员技术交流社区
标题:
接口跟抽象类有什么区别?
[打印本页]
作者:
米奇
时间:
2014-3-22 23:28
标题:
接口跟抽象类有什么区别?
本帖最后由 米奇 于 2014-3-23 11:19 编辑
都在什么情况下使用呢?
作者:
也许依然
时间:
2014-3-23 00:20
抽象类和一般类没有太大的区别。
该如何描述事物,就如何描述事物,只不过该事物中出现了一些看不懂的东西。
这些不确定的部分,也是该事物的功能,需要明确出现。但是无法定义主体
抽象类比一般类多了抽象方法
抽象类不可以实例化
特殊:抽象类中可以不定义抽象方法,这样做仅仅是不让该类建立对象
接口:初期理解,可以认为是一个特殊的抽象类
当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示
class用于定义类
Interface用于定义接口
接口定义时,格式特点:
1,接口中常见定义:常量,抽象方法
2,接口中的成员都有固定修饰符
常量:public static final
方法:public abstract
接口是不能创建对象的,因为有抽象方法。
需要被子类实现,子类对抽象接口中的方法全部覆盖后,子类才可以实例化
否则子类是一个抽象类
接口可以被类多实现,也是对多继承不支持的转换形式。java支持多实现。
作者:
luoanjade
时间:
2014-3-23 01:43
接口是一个特殊的抽象类!
作者:
北极雪871208
时间:
2014-3-23 08:35
接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,
另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。
还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用.
建议楼主多看两遍视频,慢慢就会理解了!加油!
作者:
橸瑩膤漃寞林
时间:
2014-3-23 10:08
抽象类的特点:
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(){}
}
作者:
kuchan
时间:
2014-3-23 21:13
1变量 抽象类对变量无限制;接口中所有的变量必须是public static final
2构造方法 抽象类,子类通过构造方法链调用构造方法;接口没有构造方法
3方法 抽象类,无限制;接口,所有方法必须是公共的抽象实例方法
作者:
kuchan
时间:
2014-3-23 21:17
抽象类和接口有一个共同特点:都不能使用new操作符实例化
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2