① JAVA中接口具体该怎么使用
首先是申明一个接口,关键字:interface,语法:
public interface MyInterface
{
....
}
在主体内部可以定义一些常量和接口的申明!例如:
public interface MyInterface
{
public static final int price=14;
public void dis(int param);
}
需要注意一点:接口中申明的所有方法必须是public或者是默认类型!
而且只要申明,不要去实现它!
如果要使用这个接口,那就要写一个类去实现它,关键字:implements
public class MyInterfaceDemo implements MyInterface{
.......
}
② java中的接口怎么用
很简单;比如你有个接口A 是用于添加学生;那么你就得创建一个实现类B去实现A;好处就是外边不去管B类是怎么实现学生信息添加的,只知道有个接口可以这么干就行了;比如,我叫你去买包烟,我不回去管你是走了多少弯路才能买到,我只需要知道你有这个能力买就行了。代码效果如下:
public interface A {
public void add();//A 接口定义了一个方法
}
public class B implements A{//B 类实现了A接口
@Override
public void add() {
//这里执行学生的添加
}
}
public class Test{
public static void main(String[] args) {
A a=new B();//关键点是这里,用一个A接口来接收B 的实现,这就实现了接口编程
a.add();
}
}
③ JAVA中接口具体该怎么使用
接口就是一些标准,把一些标准的制度写成方法,例如一个汽车必须有四个轮子,就可以把制造汽车写为一个接口,而制造四个轮子为接口必须方法,实现它的类就必须要实现制造四个轮子的方法。
语言、程序、框架的发展都是解耦、分离依赖性的过程,例如springIOC中,将接口的实现类都配置在xml中,如果更换实现类,只需修改xml文件,而不用去修改代码,这样就是降低依赖性。
这个东西只能自己慢慢体会,在一个可以多看看java三个特征继承、封装、多态中的多态,理解了多态,接口就自然会用了。
④ java接口怎么使用
首先要明白使用接口的目的,接口更强调的是一种规范,一般定义好,不会经常去修改。
在接口里可以定义变量,和方法的声明,需要注意的是没有方法体,还有就是此时的变量默认是public static final 类型的,方法是抽象方法。
⑤ java接口的使用
两个类中的两个类似的功能,调用他们的类动态的决定一种实现,那他们提供一个抽象父类,子类分别实现父类所定义的方法。
问题的出现:Java是一种单继承的语言,一般情况下,哪个具体类可能已经有了一个超类,解决是给它的父类加父类,或者给它父类的父类加父类,直到移动到类等级结构的最顶端。这样一来,对一个具体类的可插入性的设计,就变成了对整个等级结构中所有类的修改。 在一个等级结构中的任何一个类都可以实现一个接口,这个接口会影响到此类的所有子类,但不会影响到此类的任何超类。此类将不得不实现这个接口所规定的方法,而其子类可以从此类自动继承这些方法,当然也可以选择置换掉所有的这些方法,或者其中的某一些方法,这时候,这些子类具有了可插入性(并且可以用这个接口类型装载,传递实现了他的所有子类)。
我们关心的不是那一个具体的类,而是这个类是否实现了我们需要的接口。
接口提供了关联以及方法调用上的可插入性,软件系统的规模越大,生命周期越长,接口使得软件系统的灵活性和可扩展性,可插入性方面得到保证。
类型
使用Java接口将软件单位与内部和外部耦合起来。使用Java接口不是具体的类进行变量的类型声明,方法的返还类型声明,参量的类型声明,以及数据类型的转换。
在理想的情况下,一个具体的Java类应当只实现Java接口和抽象Java类中声明的方法,而不应当给多余方法。 Java接口(以及抽象类)一般用来作为一个类型的等级结构的起点。
如果一个类已经有了一个主要的超类型,那么通过实现一个接口,这个类可以拥有另一个次要的超类型,这种次要的超类型叫做混合类型。
⑥ java 接口怎么用应该怎么实现
java语言不支持一个类有多个直接的父类(多继承),但可以实现(implements)多个接口,间接的实现了多继承
用法public class test implements 接口名称
当类实现了某个Java接口时,它必须实现接口中的所有抽象方法,否则这个类必须声明为抽象的
比较抽象类与接口
1, 抽象类与接口都位于继承树的上层
相同点
1, 代表系统的抽象层,当一个系统使用一颗继承树上的类时,应该尽量把引用变量声明为继承树的上层抽象类型,这样可以提高两个系统之间的送耦合
2, 都不能被实例化
3, 都包含抽象方法,这些抽象方法用于描述系统能提供哪些服务,但不提供具体的实现
不同点:
1, 在抽象类中可以为部分方法提供默认的实现,从而避免在子类中重复实现它们,这是抽象类的优势,但这一优势限制了多继承,而接口中只能包含抽象方法.由于在抽象类中允许加入具体方法,因此扩展抽象类的功能,即向抽象类中添加具体方法,不会对它的子类造成影响,而对于接口,一旦接口被公布,就必须非常稳定,因为随意在接口中添加抽象方法,会影响到所有的实现类,这些实现类要么实现新增的抽象方法,要么声明为抽象类
2, 一个类只能继承一个直接的父类,这个父类可能是抽象类,但一个类可以实现多个接口,这是接口的优势,但这一优势是以不允许为任何方法提供实现作为代价的三, 为什么Java语言不允许多重继承呢?当子类覆盖父类的实例方法或隐藏父类的成员变量及静态方法时,Java虚拟机采用不同的绑定规则,假如还允许一个类有多个直接的父类,那么会使绑定规则更加复杂,
因此,为了简化系统结构设计和动态绑定机制,Java语言禁止多重继承.而接口中只有抽象方法,没有实例变量和静态方法,只有接口的实现类才会实现接口的抽象方法(接口中的抽象方法是通过类来实现的),因此,一个类即使有多个接口,也不会增加Java虚拟机进行动态绑定的复杂度.因为Java虚拟机永远不会把方法与接口绑定,而只会把方法与它的实现类绑定.四, 使用接口和抽象类的总体原则:
1, 用接口作为系统与外界交互的窗口站在外界使用者(另一个系统)的角度,接口向使用者承诺系统能提供哪些服务,站在系统本身的角度,接口制定系统必须实现哪些服务,接口是系统中最高层次的抽象类型.通过接口交互可以提高两个系统之间的送耦合系统A通过系统B进行交互,是指系统A访问系统B时,把引用变量声明为系统B中的接口类型,该引用变量引用系统B中接口的实现类的实例。
public interface B
{
}
public class C implements B
{
}
public class A
{
}
B a = new C();
2, Java接口本身必须非常稳定,Java接口一旦制定,就不允许随遇更加,否则对外面使用者及系统本身造成影响
3, 用抽象类来定制系统中的扩展点
抽象类来完成部分实现,还要一些功能通过它的子类来实现
⑦ java接口是什么接口怎么用
接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,接口就是java提供的一个面向对象的机制(就好比抽象方法和常量值的定义的集合,申明方法和类的申明方法差不多.
作用:
(1)通过接口可以实现不相关类的相同行为,而不需要了解对象所对应的类。
(2)通过接口可以指明多个类需要实现的方法。
(3)通过接口可以了解对象的交互界面,而不需了解对象所对应的类。
⑧ java怎么使用接口 java如何实现接口操作
接口是Java 实现多继承的一种机制,一个类可以实现一个或多个接口。接口是一系列
方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些
方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为。简单的说接口不
是类,但是定义了一组对类的要求,实现接口的某些类要与接口一致。
在Java 中使用关键字interface 来定义接口。例如:
publicinterfaceCompare{
publicintcompare(ObjectotherObj);
}
Compare 接口定义了一种操作compare,该操作应当完成与另一个对象进行比较的功能。
它假定某个实现这一接口的类的对象x 在调用该方法时,例如x . compare(y),如果x 小于y,
返回负数,相等返回0,否则返回正数。
举例
{
privateStringsId;//学号
//Constructor
10
publicStudent(){
this("","","");
}
publicStudent(Stringname,Stringid,StringsId){
super(name,id);
this.sId=sId;
}
publicvoidsayHello(){
super.sayHello();
System.out.println(".");
}
//get&setmethod
publicStringgetSId(){
returnthis.sId;}
publicvoidsetSId(StringsId){
this.sId=sId;}
//implementsCompareinterface
publicintcompare(ObjectotherObj){
Studentother=(Student)otherObj;
returnthis.sId.compareTo(other.sId);
}
}//endofclass