我想提出这个问题,只要我现在正在努力深入研究代表们的用途和目的,尽管可能会在类似的表述中提出这个问题.
我知道委托作为C++中使用的函数指针.事实上,如果在C#中它们主要用作接口和多态的替代品.既然我可以创建特定类的子类并为它们提供适当的方法,那么除此之外还有什么代表呢?是否存在规定其使用的情况,或仅仅是代表使用时代码的可维护性得到改善?你会推荐他们在接口上的广泛部署吗?
我只是在谈论代表,我想区分他们的角色和事件角色.
将接口声明为抽象是什么意思?接口方法也是如此.有没有意义呢?
例如.
public abstract interface Presenter {
public abstract void go(final HasWidgets container);
}
Run Code Online (Sandbox Code Playgroud) 只是一个我理解的问题.在我的Mac上,当我ifconfig在我的Mac上使用命令时,我得到以下接口:
我不明白为什么会这么多.我知道eth0将用于LAN连接,而en0是无线连接.但是macbook只有一个机场..为什么en1呢?不确定哪些是有用的.
我有一个申请.此应用程序使用接口访问数据库.该接口可以由许多类实现.例如,一个使用EF 4.4,但其他类可以使用效率更高的EF5.在将来,我可能会使用EF6,因为它使用异步方法.在此示例中,所有方法都使用EF,但也许其他方法可以使用其他方法.
应用程序编码一次,使用接口,并根据配置文件,使用一个实现或另一个,所以我只需要在一个地方修改代码,构造函数,在类的实例化中添加新选项分配给接口的.
目前所有类的方法都没有async,但是将来如果我使用EF6我想使用异步方法,所以我不知道使用EF6并实现接口的类是否可能使用async方法.
对于EF6的异步方法,我会使用async/awiat模式,所以在我的类的方法中我需要使用async属性.这让我await在调用EF6的异步方法时使用关键字.
但是这个类可以实现第一次用于同步方法的接口吗?
有没有办法在主应用程序中我可以使用许多实现而无需修改代码?一些实现将使用异步方法,而其他实现将是同步的.
我见过代码,其中每个类都有一个它实现的接口.
有时它们并没有共同的界面.
它们就在那里,它们被用来代替具体的物体.
它们不为两个类提供通用接口,并且特定于该类解决的问题域.
有什么理由这样做吗?
每种方法的优点和缺点是什么?
什么时候应该选择什么?做出这个决定时应该记住哪些要点?
我在Java中有一个基本问题,但这是OOP中的一个普遍问题.为什么接口允许设置字段?这不是一个接口应该做的事情吗?
我理解它的方式,界面是英语中的形容词.因此,如果我的类实现了Runnable和Serializable接口,那么我确保用户我的类将满足条件为Runnable和Seriablizable.但是,这意味着接口是"无状态的",但允许它们在Java中有字段...
我错过了什么吗?
是否有基于固体类/ impl混凝土的Eclipse自动生成interface的插件class?
目前我手动代码接口.
我知道在Java中,静态方法就像实例方法一样继承,不同之处在于,当重新声明它们时,父实现被隐藏而不是被覆盖.好吧,这很有道理.但是,Java教程指出了这一点
接口中的静态方法永远不会被继承.
为什么?常规和接口静态方法有什么区别?
当我说静态方法可以继承时,让我澄清一下我的意思:
class Animal {
public static void identify() {
System.out.println("This is an animal");
}
}
class Cat extends Animal {}
public static void main(String[] args) {
Animal.identify();
Cat.identify(); // This compiles, even though it is not redefined in Cat.
}
Run Code Online (Sandbox Code Playgroud)
然而,
interface Animal {
public static void identify() {
System.out.println("This is an animal");
}
}
class Cat implements Animal {}
public static void main(String[] args) {
Animal.identify();
Cat.identify(); // This does not compile, because interface …Run Code Online (Sandbox Code Playgroud) interface ×10
c# ×4
java ×4
oop ×2
abstract ×1
async-await ×1
delegates ×1
eclipse ×1
eclipse-cdt ×1
ifconfig ×1
inheritance ×1
ip ×1
java-8 ×1
macos ×1
virtual ×1