我已经创建了一个接口并编写了实现。在我的主类中,我为接口“interf5”创建了实例,也为实现类“Demo3”创建了实例。
这两个实例'i'有什么区别
请在下面找到我的代码。
interface interf5 {
public int getLength(String s);
}
class Demo3 implements interf5 {
public int getLength(String s) {
return s.length();
}
}
public class WithoutLambdaDemo3 {
public static void main(String args[]) {
interf5 i=new Demo3(); // What is the difference between instance 'i' and instance 'd'
Demo3 d=new Demo3();
System.out.println("String length -->"+i.getLength("Hello World"));
System.out.println("String length -->"+d.getLength("Hello World"));
}
}
将某个东西初始化为interf5比用Demo3初始化更通用。例如,如果您有另一个类:
class FunClass implements interf5 {
public int getLength(String s) {
return 7;
}
}
做一些像
public class WithoutLambdaDemo3 {
public static void main(String args[]) {
interf5 i=new Demo3(); // What is the difference between instance 'i' and instance 'd'
Demo3 d=new Demo3();
System.out.println("String length -->"+i.getLength("Hello World"));
System.out.println("String length -->"+d.getLength("Hello World"));
i = new FunClass();
System.out.println("String length -->"+i.getLength("Hello World")); // Now returns 7 instead of the actual length
}
}
但如果要将Demo3对象重新指定为FunClass,则会出现错误,因为它们被识别为两个不同的对象。
希望这有帮助!
以非常简单的方式:
通过interf5,您只能访问界面中定义的方法。通过d,您可以访问Demo3和界面中定义的所有方法。
我建议你读一些关于
这里有一个比你更好的例子:
interface interf5 {
public int getLength(String s);
}
class Demo3 implements interf5 {
public int getLength(String s) {
return s.length();
}
public String getHelloWorld(){
return "Hello World"
}
}
public class WithoutLambdaDemo3 {
public static void main(String args[]) {
interf5 i=new Demo3(); // What is the difference between instance 'i' and instance 'd'
Demo3 d=new Demo3();
System.out.println(i.getHellowWorld()); //This not work
System.out.println(d.getHellowWorld()); //Returns Hello World
}
}
本文向大家介绍Java接口和抽象类实例分析,包括了Java接口和抽象类实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java的接口和抽象类。分享给大家供大家参考。具体分析如下: 对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是
我有两个方法和抽象类的接口,它们实现了这个接口并从它重写了一个方法。我可以实例这个抽象类,而不重写接口的其他方法吗?或者我可以用具有另一个签名的方法替换此方法吗? UPD:谢谢你的回答,我真的在我的问题上犯了错误。我是否可以使用匿名类来扩展我的抽象类,而不重写来自实现的所有方法?我如何理解DragonK的回答,不,我需要创建类,这将是扩展抽象类和重写其他方法?
本文向大家介绍Java接口和抽象类用法实例总结,包括了Java接口和抽象类用法实例总结的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java接口和抽象类用法。分享给大家供大家参考,具体如下: 接口 1 因为java不支持多重继承,所以有了接口,一个类只能继承一个父类,但可以实现多个接口,接口本身也可以继承多个接口。 2 接口里面的成员变量默认都是public static final类型
但是,我也看到了一种奇怪的方法来重写接口方法: 3.子类只实现接口,但由父类重写接口中的方法: 覆盖接口方法的第三种方法在android框架源代码中非常常见,例如: 这样设计的原因是什么?
本文向大家介绍Java中的接口和抽象类用法实例详解,包括了Java中的接口和抽象类用法实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java中的接口和抽象类用法。分享给大家供大家参考,具体如下: 在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 抽象类往往用来表
问题内容: 在面试中,有人问我以下问题。我试图回答这个问题,但是我想确切回答这个问题。 如果我可以将Abstract类模拟为Interface,为什么Java提供了Interface? 这意味着如果在Abstract类中我可以将所有方法标记为abstract,然后abstract类将用作接口,那么为什么我需要接口。 谁能简单地解释一下我。 问题答案: 这是一个非常标准的面试问题。答案是:因为您可以