目录
一.抽象类Abstract
二.接口Interface
三.泛型
欢迎加入Unity业内qq交流群:956187480
一.抽象类Abstract抽象类顾名思义就是不具体的很笼统的类,可以理解为约束子类的一种规范, 举例说明使用场景: 比如家具,我并不知道具体是什么家具,具体的家具类可以继承这个抽象家具类,同时也可以重写里面的抽象方法 再比如动物,我并不知道具体是什么动物,具体的动物可以继承这个抽象动物类,同时也可以重写里面的抽象方法
抽象类和抽象方法的运用规则:
1.抽象类和静态类一样不能被实例化 2.抽象类内部可写静态和非静态成员(静态类只能写静态成员) 3.抽象类可以被继承(抽象类和非抽象类之间可以相互继承) 4.抽象方法只能写在抽象类中,且只有声明没有实现 5.非抽象类继承抽象类必须实现抽象方法(抽象类不需要,非抽象类要使用关键字Override重写或者New隐藏实现抽象方法)
class A { }
abstract class Animal:A
{
public string name;
public static int age;
public void Move() { }
public abstract void Show();
}
class Dog : Animal
{
public override void Show()
{
// throw new NotImplementedException();
}
}
二.接口Interface
接口顾名思义就是提供一系列便利给类,可以理解为约束子类的一系列规范, 1.接口中的方法不是抽象方法,且无需权限修饰符 2.实现接口的方法必须为Public权限,且不能使用Override 3.抽象类实现接口可以把接口方法实现为抽象方法 4.抽象类实现接口,接口内的方法可以用抽象方法实现 5.可以用虚方法实现接口的方法 6.如果一个类即继承父类又实现接口,那接口必须写在后面 7.一个类可以实现多个接口,接口命名以I开头
//使用说明接口
interface Specification
{
void Usage();//用法
void Repair();//维修
}
//电器
class Electrical { }
//冰箱实现接口
class Fridge : Electrical,Specification
{
public virtual void Repair() { }
public void Usage() { }
}
//抽象类实现接口
abstract class Cars:Specification
{
public abstract void Usage();
public abstract void Repair();
}
三.泛型
泛型是指可以将类型在类,接口,方法中进行传递的一种方式,类似于传参数在类里面的使用 1.类中传入的泛型只能在当前类里面使用,不能被继承 2.实例化带有泛型修饰的类时需要传入具体类型 3.在一个类中可以有多种泛型 4.同一个命名空间内可以存在两个名字一样的类但是泛型数量要不一样 在方法里面的使用 1.只能作用在当前方法里面,且在调用方法的时候才能确定类型 2.在方法里面使用主要用在方法体,参数,返回值 3.当调用参数中使用泛型T的方法且方法本身也带有泛型T时,方法的泛型T不用赋值泛型在接口中的使用 1.泛型不能被子接口继承
class Program
{
static void Main(string[] args)
{
Person Lele = new Person();
Cars car = new Cars();
Woman woman = new Woman();
woman.t = "我是string";
Fruits fruits = new Fruits();
fruits.Show();
fruits.Show(20);
}
}
class Person {
public T t;
}
class Woman: Person{}
class Cars
{
public M m;
public N n;
}
class Cars {}
class Fruits
{
public void Show() { }
public void Show(T t) { }
}
interface IHand
{
void Show(T t);
}
class Robot : IHand
{
public void Show(string s)
{
}
}
欢迎加入Unity业内qq交流群:956187480