Office中国论坛/Access中国论坛
标题:
接口的例子
[打印本页]
作者:
网络小猪
时间:
2014-3-26 13:12
标题:
接口的例子
今天汪老师给我出了一道题,要求以下:
新建一个C#的控制台程序工程,实现以下几个小功能
1、创建动物接口,内含 吃();喝();叫();跑(); 四个接口
2、创建猫和兔类,继承动物接口,实现每个吃喝叫跑功能
3、用WriteLine来表示一下就行了
我们假设兔子是不会叫的(好像只有遇到危险的时候会叫),也就是说兔子不应该有 叫()方法,这时候怎么处理?
我第一次写的代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Animal
{
class Animal2
{
static void Main()
{
AnimalCanShout Cat = new AnimalCanShout();
AnimalCannotShout Rabbit = new AnimalCannotShout();
Cat.eat();
Cat.drink();
Cat.shout();
Cat.run();
Rabbit.eat();
Rabbit.drink();
Rabbit.run();
Console.ReadKey();
}
}
interface IAnimalCannotShout
{
void eat();
void drink();
void run();
}
interface IAnimalCanShout : IAnimalCannotShout
{
void shout();
}
public class AnimalCannotShout
{
public void eat()
{
System.Console.WriteLine("eating");
}
public void drink()
{
System.Console.WriteLine("drinking");
}
public void run()
{
System.Console.WriteLine("running");
}
}
public class AnimalCanShout : AnimalCannotShout
{
public void shout()
{
System.Console.WriteLine("shouting");
}
}
}
复制代码
经过汪老师提示后,改了代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Animal
{
class Program
{
static void Main(string[] args)
{
Cat cat = new Cat();
Rabbit rabbit = new Rabbit();
cat.eat();
cat.drink();
cat.shout();
cat.run();
rabbit.eat();
rabbit.drink();
rabbit.run();
System.Console.ReadKey();
}
}
public interface Ieat
{
void eat();
}
public interface Irun
{
void run();
}
public interface Ishout
{
void shout();
}
public interface Idrink
{
void drink();
}
public class Cat : Ieat, Idrink, Ishout, Irun
{
public void eat()
{
System.Console.WriteLine("eating");
}
public void drink()
{
System.Console.WriteLine("drinking");
}
public void shout()
{
System.Console.WriteLine("shouting");
}
public void run()
{
System.Console.WriteLine("running");
}
}
public class Rabbit : Ieat, Idrink, Irun
{
public void eat()
{
System.Console.WriteLine("eating");
}
public void drink()
{
System.Console.WriteLine("drinking");
}
public void run()
{
System.Console.WriteLine("running");
}
}
}
复制代码
第一次的代码,感觉是散的,猫的类与兔子的类没有什么交集。第二次的代码,把动物分类二类了,一类会叫的,一类不会叫的,动物都有吃喝跑功能。
写第一次代码时,不会用接口的继承,与类的继承,所以感觉写得很散。
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3