- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道是什么让一个类被称为抽象类。我相信,抽象关键字肯定是一个类,但是如果去掉关键字,那么我们就可以创建类的实例。
也就是说,抽象类的特点是什么。
提前致谢。
-戒日
最佳答案
与纯实现类不同,抽象类在现实世界中不会形成具体对象。 顾名思义,抽象类包含/定义需要独立重用/定义的相关对象的共同行为在所有相关对象中。
以鸟类为例。如果您正在编写一个与鸟类有关的程序,那么您将首先拥有一个抽象基类 Bird,并且每只鸟都派生自抽象基类 Bird。请注意,抽象类 BIRD 并不表示具体的现实世界对象,而是一种相关对象,即鸟类!
让我们从类图开始,然后是一些代码。
alt text http://ruchitsurati.net/files/birds.png
public abstract class Bird
{
protected string Name = string.Empty;
public Bird(string name)
{
this.Name = name;
}
public virtual void Fly()
{
Console.WriteLine(string.Format("{0} is flying.", this.Name));
}
public virtual void Run()
{
Console.WriteLine(string.Format("{0} cannot run.", this.Name));
}
}
public class Parrot : Bird
{
public Parrot() : base("parrot") { }
}
public class Sparrow : Bird
{
public Sparrow() : base("sparrow") { }
}
public class Penguin : Bird
{
public Penguin() : base("penguin") { }
public override void Fly()
{
Console.WriteLine(string.Format("{0} cannot fly. Some birds do not fly.", this.Name));
}
public override void Run()
{
Console.WriteLine(string.Format("{0} is running. Some birds do run.", this.Name));
}
}
class Program
{
static void Main(string[] args)
{
Parrot p = new Parrot();
Sparrow s = new Sparrow();
Penguin pe = new Penguin();
List<Bird> birds = new List<Bird>();
birds.Add(p);
birds.Add(s);
birds.Add(pe);
foreach (Bird bird in birds)
{
bird.Fly();
bird.Run();
}
Console.ReadLine();
}
}
关于c# - 抽象类的特点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2849056/
什么是 Kotlin? Kotlin 是一种现代、流行的编程语言,由 JetBrains 在 2016 年发布。 自发布以来,它已经变得非常流行,因为它与 Java 兼容(Java 是目前最流行的
不要问如何,但我以某种方式创建了一个带有单个句点字符 (.) 的目录名称,并且由于这是目录导航的特殊字符,我不知道如何删除它! drwxr-xr-x 6 admin admin 4096 Nov
不要问如何,但我以某种方式创建了一个带有单个句点字符 (.) 的目录名称,并且由于这是目录导航的特殊字符,我不知道如何删除它! drwxr-xr-x 6 admin admin 4096 Nov
我有一个小文件,其中包含一些我想用“|”分割的内容性格。 当我尝试使用任何其他字符(例如“>”)时,它工作得很好,但使用“|”时效果很好。性格,有一些意想不到的结果。 该行本身(此处带有 > 字符)
我想使用mysql在数据库中保存额外的生僻汉字,但继续显示???将文本插入表格后。之前我搜索过如何在mysql数据中插入任意4字节的汉字,并按照过程( "Incorrect string value"
这个字符是什么意思? 最佳答案 那将是一个 HTML 编码的换行字符(使用十六进制值)。 十进制值为 关于html - 是什么 特点?,我们在Stack Overflow上找到一个类似的问题: htt
1. 引言 在Go语言中, init() 函数是一种特殊的函数,用于在程序启动时自动执行一次。它的存在为我们提供了一种机制,可以在程序启动时进行一些必要的初始化操作,为程序的正常运行做好准
我不明白哪些行应该以 JQuery 中的分号 ; 字符终止。 目前,出于安全考虑,我只是用它终止每一行。但是有什么地方和时间使用它的规则吗? 最佳答案 首先,JQuery 是一个库(Javascrip
terraform init成功初始化但卡在 terraform 计划上。 该错误与功能块有关。我不确定在哪里添加功能块: Insufficient features blocks (source c
在哪里可以阅读有关 cakephp 2.0 功能的更多信息? 因为我可以找到 symfony 2.0 演示文稿,但找不到 cakephp 2.0 谢谢 最佳答案 CakePHP 2.x 。右侧有迁移指
我注意到我的 double 包含不同精度的字符,具体取决于区域设置。 例如: 3,47 或 3.45 如何强制 double 始终包含 . 精度字符? 问题是,一旦我将包含此 double 值的类序列
我想将“U+1F1FA U+1F1F8”等 Unicode 代码点表示法转换为“🇺🇸”。 在 javaScript 中,到目前为止我尝试过的是 String.fromCharCode(parseI
将 — 发送到 foursquare 时,它显示为 ?在他们的网站上,而不是——,长破折号。它在 Android 应用程序中看起来很好(我使用\u2014 显示它),但在 foursquare 网
到目前为止,我知道 EOF 是一个特殊字符,自动插入到文本文件的末尾以指示其结束。但我现在觉得需要对此进行更多澄清。我在 Google 和 Wikipedia 页面上查看了 EOF,但他们无法回答以下
我正在尝试使用基于 .split-string 的“split-string”函数来拆分字符串。特点。但(split-string "1.2.3"".") 根本不起作用。它只是返回一个可变数量的空字符
这可能是重复的。我已经搜索过,但不确定要使用哪些术语。如果你能找到重复的,谢谢,我会删除这个问题。 我听说 history.js 是“最好的”深度链接 ajax 库,因为它对旧版浏览器的兼容性最好。然
我是一名优秀的程序员,十分优秀!