社区
C#
帖子详情
接口不能实例化?还是什么?
不懂必须要问
2009-01-31 01:23:52
关键字abstract和sealed不能在接口中使用,因为这两个修饰符在接口定义中是没有意义的(它们不包含执行代码,所以不能直接实例化,且必须是可以继承的)。
接口不是类,所以没有继承System.Object。但是为了方便,System.Object的成员可以通过接口类型的变量来访问。
如上所述,不能用实例化类的方式来实例化接口。
...全文
698
15
打赏
收藏
接口不能实例化?还是什么?
关键字abstract和sealed不能在接口中使用,因为这两个修饰符在接口定义中是没有意义的(它们不包含执行代码,所以不能直接实例化,且必须是可以继承的)。 接口不是类,所以没有继承System.Object。但是为了方便,System.Object的成员可以通过接口类型的变量来访问。 如上所述,不能用实例化类的方式来实例化接口。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
随枫而来
2011-08-17
打赏
举报
回复
顶起来!!!
tianjinldl
2009-02-01
打赏
举报
回复
UP
ProjectDD
2009-01-31
打赏
举报
回复
接口引用实例
不懂必须要问
2009-01-31
打赏
举报
回复
[Quote=引用 7 楼 pp_shy 的回复:]
引用 2 楼 MoreQuestion 的回复:
什么意思呢?
1namespace ConsoleApplication1
2{
3 class Program
4 {
5 static void Main(string[] args)
6 {
7 USB usb;
8 usb = new UDisk();//插入U盘
9 usb.OutputFile();//从U盘读出文件
10 usb.InputFile();//往U盘写入文件
11 usb.Dispose();//拔出U盘
12 Console.…
[/Quote]
多谢,原来这样的啊。
HDNGO
2009-01-31
打赏
举报
回复
接口因为没有实现代码,所以不能实例化。
如果要使用一个接口的话,必须用一个类来实现这个接口,然后实例化这个类。
你例子中的UDisk什么的就是具体的类,USB是接口~~
USB usb = new UDisk(); 实例化UDisk类来实现USB接口~~
不懂必须要问
2009-01-31
打赏
举报
回复
是啊,这样只是声明?还是定义?不是实例化。
不懂必须要问
2009-01-31
打赏
举报
回复
abstract class A
{
}
A a;
这样可以吧?因为我不是实例化吧?
不懂必须要问
2009-01-31
打赏
举报
回复
[Quote=引用 6 楼 king19840811 的回复:]
可是这里USB 接口实例化了。USB usb;
你先搞清什么是实例化吧。。。
USB usb=new USB();这才是实例化
[/Quote]
啊,这样才是实例化啊?
可惜没说要new才算实例货啊。
pp_shy
2009-01-31
打赏
举报
回复
[Quote=引用 2 楼 MoreQuestion 的回复:]
什么意思呢?
1namespace ConsoleApplication1
2{
3 class Program
4 {
5 static void Main(string[] args)
6 {
7 USB usb;
8 usb = new UDisk();//插入U盘
9 usb.OutputFile();//从U盘读出文件
10 usb.InputFile();//往U盘写入文件
11 usb.Dispose();//拔出U盘
12 Console.WriteLine("");
13 u…
[/Quote]
这里进行实例化的只有UDisk、MDisk、MP4这3个类而已
USB usb = new UDisk();//插入U盘
上面的这行代码其实是先实例化了一个UDisk的类,然后再把UDisk类的实例隐式转换成USB接口的一个对象usb
(因为UDisk类派生自USB接口,所以可以隐式转换)
USB usb = new UDisk();这行代码等同于下面的形式
UDisk uDisk = new UDisk();
USB usb = uDisk;
同理:
USB usb = new MDisk();//插入移动硬盘
USB usb = new MP4();//插入MP4
king19840811
2009-01-31
打赏
举报
回复
可是这里USB 接口实例化了。USB usb;
你先搞清什么是实例化吧。。。
USB usb=new USB();这才是实例化
Deathsign
2009-01-31
打赏
举报
回复
接口不能直接实例化
但是接口派生出来的抽象类可以实例化
同时 所有派生出来的抽象类都可以强制转换成接口的实例……
猿敲月下码
2009-01-31
打赏
举报
回复
你可以把接口看成一个纯粹的抽象类。抽象类是不能创建对象的
wuyq11
2009-01-31
打赏
举报
回复
是的。不能实例化。
不懂必须要问
2009-01-31
打赏
举报
回复
什么意思呢?
1namespace ConsoleApplication1
2{
3 class Program
4 {
5 static void Main(string[] args)
6 {
7 USB usb;
8 usb = new UDisk();//插入U盘
9 usb.OutputFile();//从U盘读出文件
10 usb.InputFile();//往U盘写入文件
11 usb.Dispose();//拔出U盘
12 Console.WriteLine("");
13 usb = new MDisk();//插入移动硬盘
14 usb.OutputFile();//从移动硬盘读出文件
15 usb.InputFile();//往移动硬盘写入文件
16 usb.Dispose();//拔出移动硬盘
17 Console.WriteLine("");
18 usb = new MP4();//插入MP4
19 usb.OutputFile();//从MP4读出文件
20 usb.InputFile();//往MP4写入文件
21 usb.Dispose();//拔出MP4
22 Console.ReadKey();
23 }
24
25 //USB接口
26 public interface USB : IDisposable
27 {
28 void OutputFile();//读出文件
29 void InputFile();//写入文件
30 }
31
32 //U盘
33 public class UDisk : USB
34 {
35 public UDisk()
36 {
37 Console.WriteLine("U盘准备就绪");
38 }
39 public void OutputFile()
40 {
41 Console.WriteLine("从U盘读出文件");
42 }
43 public void InputFile()
44 {
45 Console.WriteLine("往U盘写入文件");
46 }
47 public void Dispose()
48 {
49 Console.WriteLine("U盘已被拔出");
50 }
51 }
52
53 //移动硬盘
54 public class MDisk : USB
55 {
56 public MDisk()
57 {
58 Console.WriteLine("移动硬盘准备就绪");
59 }
60 public void OutputFile()
61 {
62 Console.WriteLine("从移动硬盘读出文件");
63 }
64 public void InputFile()
65 {
66 Console.WriteLine("往移动硬盘写入文件");
67 }
68 public void Dispose()
69 {
70 Console.WriteLine("移动硬盘已被拔出");
71 }
72 }
73
74 //MP4
75 public class MP4 : USB
76 {
77 public MP4()
78 {
79 Console.WriteLine("MP4准备就绪");
80 }
81 public void OutputFile()
82 {
83 Console.WriteLine("从MP4读出文件");
84 }
85 public void InputFile()
86 {
87 Console.WriteLine("往MP4写入文件");
88 }
89 public void Dispose()
90 {
91 Console.WriteLine("MP4已被拔出");
92 }
93 }
94 }
95}
可是这里USB 接口实例化了。USB usb;
king19840811
2009-01-31
打赏
举报
回复
都被你说完了
接口是一组方法的原型不能实例化。
javax.servlet jar包---解决找不到javax.servlet.*等问题
在Java Web开发中,`javax.servlet`包是核心的API之一,它提供了处理HTTP请求和响应的标准
接口
。这个jar包是Java Servlet规范的一部分,用于...确保正确地引入和使用这些库,能帮助开发者构建功能丰富的Web应用程序。
Java中
接口
可以
实例化
吗?
接口
不可以
实例化
,但是
接口
变量可以指向该
接口
实现类的对象; 注意点:该
接口
变量
不能
使用实现类中有、
接口
中没有的方法; 原因 首先:
接口
可以看做是特殊的抽象类,其方法都是用public abstract修饰的抽象方法,...
Java的
接口
可以
实例化
吗?
Java的
接口
可以
实例化
吗?
接口
不可以
实例化
。但是
接口
对象可以指向它的...所以
不能
被
实例化
。 比如: List Set Map都是
接口
使用时先实现 List list = new ArrayList <>(); 有点类似于指针的感觉了.Facto...
接口
不能
被
实例化
的吗?
接口
引用是什么?
接口
,在JAVA编程语言中是一...
接口
无法被
实例化
,但是可以被实现。一个实现
接口
的类,必须实现
接口
内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,
接口
类型可用来声明一个变量,他们可以成为一个空指
java抽象无法完成
实例化
_抽象类为什么
不能
被
实例化
?
今天无意中看到一个问题:为什么抽象类
不能
实例化
?很多人的答案都是再说使用抽象类的好处,但是并没有回答为什么
不能
实例化
?这个过程就像是在回答:为什么公鸡
不能
下蛋?然后回答是使用公鸡可以打鸣。按照我的理解...
C#
111,097
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章