---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
接口是一种规范。
只要一个类继承了一个接口,这个类就必须实现这个接口中所有的成员为了多态。
接口不能被实例化也就是说,接口不能new(不能创建对象)
接口中的成员不能加“访问修饰符”,接口中的成员访问修饰符为public,不能修改。
(默认为public)
接口中的成员不能有任何实现(“光说不做”,只是定义了一组未实现的成员)。
接口中只能有方法、属性、索引器、事件,不能有“字段”。
接口与接口之间可以继承,并且可以多继承。
接口并不能去继承一个类,而类可以继承接口
实现接口的子类必须实现该接口的全部成员。
一个类可以同时继承一个类并实现多个接口,如果一个子类同时继承了父类A,并实现了接口IA,那么语法上A必须写在IA的前面。
class MyClass:A,IA{},因为类是单继承的。
显示实现接口的目的:解决方法的重名问题
什么时候显示的去实现接口:
当继承的借口中的方法和参数一摸一样的时候,要是用显示的实现接口
当一个抽象类实现接口的时候,如果不想把接口中的成员实现,可以把该成员实现为abstract。(抽象类也能实现接口,用abstrac标记)
“显示实现接口”,只能通过接口变量来调用(因为显示实现接口后成员为private)。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _03接口
{
class Program
{
static void Main(string[] args)
{
Student p1 = new Student();
p1.KouLan();
p1.Study();
p1.CHLSS();
Console.ReadKey();
}
}
public abstract class Person
{
public string Name { set; get; }
public int Age { set; get; }
public char Gender { set; get; }
public void CHLSS()
{
Console.WriteLine("吃喝拉撒睡");
}
}
public class Student:Person,IKouLanable
{
public int ID { set; get; }
public void Study()
{
Console.WriteLine("我是学生我会学习");
}
public void KouLan()
{
Console.WriteLine("我是学生我也会扣篮");
}
}
public class NBAPlayer:IKouLanable
{
public void KouLan()
{
Console.WriteLine(" 我是Nba球员我会扣篮");
}
}
public interface IKouLanable
{
void KouLan();
}
}
----------------------ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------