一.interface
interface表达式:
interface IFly//可以跨继承,类可以用多个接口,接口可派生继承
//也无法new实例化
{
void Fly();//必须在其他类中使用至少一次
}interface在类中的使用:class Dove : 基类名,IFlyj //接口
interface在main中的使用:IFly dongwu = new Dove("小八嘎");
// See https://aka.ms/new-console-template for more information
using System.Diagnostics;
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApp1
{
interface IFly//可以跨继承,类可以用多个接口,接口可派生继承
//也无法new实例化
{
void Fly();
}
abstract class dongwu
{
public dongwu(string name)
{
this.Name = name;
}
public string Name { get; set; }
public abstract void Shoot();
// public abstract void Fly();
}
class Dog :dongwu
{
public Dog(string name) : base(name) { Console.WriteLine(); }
public override void Shoot()
{
Console.WriteLine("{0}:汪汪", this.Name);
}
}
class Cat : dongwu
{
public Cat(string name) : base(name) { Console.WriteLine(); }
public override void Shoot()
{
Console.WriteLine("{0}:喵喵", this.Name);
}
}
class Duck : dongwu,IFly
{
public Duck(string name) : base(name) { Console.WriteLine(); }
public override void Shoot()
{
Console.WriteLine("{0}:嘎嘎", this.Name);
}
public void Fly()
{
Console.WriteLine("{0}:嘎嘎,我飞起来了", this.Name);
}
}
class Dove : dongwu,IFly
{
public Dove(string name) : base(name) { Console.WriteLine(); }
public override void Shoot()
{
Console.WriteLine("{0}:咕咕", this.Name);
}
public void Fly()
{
Console.WriteLine("{0}:咕咕,我在飞", this.Name);
}
}
class Program
{
static void IWant2Fly(IFly fly)
{
fly.Fly();
}
static void Main(string[] args)
{
IFly dongwu = new Duck("小八嘎");
dongwu.Fly();
IWant2Fly(new Duck("小八嘎"));
}
}
}
2.使用UML
搜索类视图——>然后鼠标右键点击文件——>点击查看类图——>将文件拖拽进去