c# – 为什么抽象类不能被实例化,什么是无法实例化的类的使用
我知道并阅读有关抽象类和接口的内容,但我从未理解的一点是,无法实例化的类的用法是什么.
我可以使用普通类和虚方法而不是抽象类吗? 当我实例化基类时会发生什么? 解决方法
当您在派生类之间共享一些常用功能时,通常使用抽象类.也就是说,您不能使用接口,因为您想提供一些默认功能.
看看 在流示例中, 换句话说,抽象类上的方法可以使用类上的其他抽象成员,即使它们没有实现!这是因为需要派生的非抽象类来提供实现 – 保证在调用方法时存在实现.这类似于如何使用接口的成员,即使成员在接口上没有实现,因为它保证实现接口的对象必须实现其所有成员. 像 Stream foo = new Stream(); // Invalid,Stream is abstract. Stream foo = new MemoryStream(); // Valid. 所以,现在总结一下你在标题中提出的问题的答案.抽象类无法实例化,因为它可能包含抽象且没有实现的成员.抽象类的使用是双重的:首先,要进行子类化,并允许子类共享某些成员的公共实现,其次,允许通过对抽象类的引用来使用子类的任何对象的实例. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |