Questions tagged «interface»

接口是指与组件交互的指定点。接口在硬件和软件级别均适用。---它也指语言元素“接口”,这是Java,C#和类似语言中单继承的唯一例外。

1
jQuery UI-可排序:通过可排序元素中的图标“句柄”拖动
我的jQuery ui sortables工作正常,但我的sortable元素中还有其他交互式元素。为了防止在与可排序div中的元素进行交互时意外排序,我想以某种方式使可排序对象的拖动运动仅在拖动可排序对象中的某个元素时发生,例如可能驻留的“移动”图标在每个可排序对象的左上角。通用jqui是否有可能,还是我需要编写自己的钩子?


13
为什么我的接口成员不能受保护?
反对在接口上声明保护访问成员的论点是什么?例如,这是无效的: public interface IOrange { public OrangePeel Peel { get; } protected OrangePips Seeds { get; } } 在此示例中,接口IOrange将保证实现者至少OrangePips为其继承者提供一个实例。如果实现者愿意,他们可以将范围扩大到完整public: public class NavelOrange : IOrange { public OrangePeel Peel { get { return new OrangePeel(); } } protected OrangePips Seeds { get { return null; } } } public class ValenciaOrange …

19
我为什么要使用接口?[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我了解它们会迫使您实现方法等,但我无法理解的是为什么要使用它们。谁能给我一个很好的例子或解释我为什么要实现这一点。
74 oop  interface 

15
TextWatcher用于多个EditText
我想TextWatcher为多个EditText字段实现接口。目前我正在使用: text1.addTextChangedListener(this); text2.addTextChangedListener(this); 然后覆盖我的Activity中的方法: public void afterTextChanged(Editable s) {} public void beforeTextChanged(CharSequence s, int start, int count, int after) {} public void onTextChanged(CharSequence s, int start, int before, int count) { // do some operation on text of text1 field // do some operation on text of text2 field } …

3
接口方法可以有主体吗?
我知道一个接口就像一个100%纯的抽象类。因此,它不能包含方法实现。但是,我看到了一个奇怪的代码。有人可以解释吗? 代码段: interface Whoa { public static void doStuff() { System.out.println("This is not default implementation"); } } 编辑: 我的IDE是Intellij Idea 13.1。项目SDK是Java 7 <1.7.0_25>。IDE未显示任何编译器错误。但是,当我在命令行编译代码时,我收到以下消息。 Whoa.java:2: error: modifier static not allowed here public static void doStuff() { ^


1
打字稿功能界面
为什么Typescript不会警告我所定义的函数与接口声明不匹配,但是如果我尝试调用该函数,它的确会警告我。 interface IFormatter { (data: string, toUpper : boolean): string; }; //Compiler does not flag error here. var upperCaseFormatter: IFormatter = function (data: string) { return data.toUpperCase(); } upperCaseFormatter("test"); //but does flag an error here.

12
为什么要使用接口,多重继承与接口,接口的优点?
我对此事仍然有些困惑。我到目前为止发现的是 (这里已经问过类似的问题,但我还有其他几点。) 接口是仅抽象方法和最终字段的集合。 Java中没有多重继承。 接口可用于在Java中实现多重继承。 继承的一个强项是我们可以在派生类中使用基类的代码,而无需再次编写。可能这是继承在那里最重要的事情。 现在.. Q1。由于接口仅具有抽象方法(无代码),因此,我们如何说如果实现任何接口,那么它就是继承?我们没有使用它的代码。 Q2。如果实现接口不是继承,那么如何使用接口实现多重继承? Q3。无论如何,使用接口有什么好处?他们没有任何代码。我们需要在实现它的所有类中一次又一次地编写代码。 那为什么要建立接口呢? 注意:我发现一种情况下接口是有用的。它的一个示例就像在Runnable接口中,我们有public void run()方法,在其中定义线程的功能,并且内置了编码,该方法将作为单独的线程运行。因此,我们只需要编写线程中的操作代码,Rest是预定义的。但是,这也可以使用抽象类和全部来实现。 那么使用接口的确切好处是什么?使用接口实现的真的是多重继承吗?

4
Java反射:创建一个实现类
Class someInterface = Class.fromName("some.package.SomeInterface"); 现在如何创建一个实现的新类someInterface? 我需要创建一个新类,并将其传递给需要使用aSomeInterface作为参数的函数。



6
将函数作为参数传递给Java
我已经熟悉Android框架和Java,并想创建一个通用的“ NetworkHelper”类,该类可以处理大多数联网代码,使我能够从中调用网页。 我遵循了来自developer.android.com的这篇文章来创建我的网络类:http : //developer.android.com/training/basics/network-ops/connecting.html 码: package com.example.androidapp; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.URL; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.AsyncTask; import android.util.Log; /** * @author tuomas * This class provides basic helper functions and features for network communication. */ public …

5
接口的可选参数
使用c#4.0-构建接口和实现该接口的类。我想在接口中声明一个可选参数,并将其反映在类中。因此,我有以下内容: public interface IFoo { void Bar(int i, int j=0); } public class Foo { void Bar(int i, int j=0) { // do stuff } } 这样可以编译,但是看起来不正确。接口需要具有可选参数,因为否则它将无法正确反映在接口方法签名中。 我应该跳过可选参数,而只使用可为空的类型吗?还是会按预期工作而没有副作用或后果?

10
为什么IEnumerable <T> .ToList <T>()返回List <T>而不是IList <T>?
扩展方法ToList()返回List&lt;TSource&gt;。按照相同的模式,ToDictionary()返回Dictionary&lt;TKey, TSource&gt;。 我很好奇为什么这些方法没有分别按IList&lt;TSource&gt;和键入其返回值IDictionary&lt;TKey, TSource&gt;。这似乎更奇怪,因为将ToLookup&lt;TSource, TKey&gt;其返回值键入为接口而不是实际的实现。 通过使用dotPeek或其他反编译器查看这些扩展方法的源代码,我们看到以下实现(ToList()由于它更短而显示): public static List&lt;TSource&gt; ToList&lt;TSource&gt;(this IEnumerable&lt;TSource&gt; source) { if (source == null) throw Error.ArgumentNull("source"); return new List&lt;TSource&gt;(source); } 那么,为什么此方法将其返回值键入接口的特定实现而不是接口本身呢?唯一的变化是返回类型。 我很好奇,因为IEnumerable&lt;&gt;扩展名的签名非常一致,除了这两种情况。我一直认为这有点奇怪。 另外,为了使事情更加混乱,状态文档ToLookup(): 根据指定的键选择器函数从IEnumerable创建查找。 但返回类型为ILookup&lt;TKey, TElement&gt;。 在Edulinq中,Jon Skeet提到返回类型是,List&lt;T&gt;而不是IList&lt;T&gt;,但不再涉及主题。 广泛的搜索没有得到任何答案,所以在这里我问你: 不将返回值键入为接口背后有任何设计决定,还是偶然?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.