title: C#中的class和interface
date: 2019-03-01 00:00:00
categories:
- 编程语言
tags: - C#
C#中的class
namespace Class和interface{class Program{static void Main(string[] args){Person person = new Person();Console.WriteLine(person.GetAge(1));//调用时使用实例化的对象调用Console.WriteLine(Person.GetFive());//static方法使用时直接使用"类名.方法"调用,不能使用实例化后的对象调用//静态的方法或字段是存储在class类上的,不能实例化}}class Person{ //可以包含字段、方法、属性int age;public int GetAge(int Mage){this.age=Mage;//this表示当前class实例化后的对象,因为在自己的class中可以省略this不写return age;}public static int GetFive(){return 5;}}}
C#类中的属性
public int Age{get //get从旧内存中取值{return age + 10;}set //set向内存中写值{age = value - 10;}}//比如age,如果默认是0,直接调用person.Age,结果是10。如果给person.Age = 10;赋值,结果是0
C#的interface
namespace demo_interface{class Program{static void Main(string[] args){Person person = new Person();Console.WriteLine(person.GetSuper());//11}}class Person : ISuper //类只能继承一个类但是能继承多个接口{ //Person类如果继承了接口ISuper接口,那类中必须要实现接口里面声明的方法,否则编译不通过int age = 1;public int GetSuper(){return age + 10;}}interface ISuper{int GetSuper();}}
abstract class和interface的区别(C#常考面试题)
namespace 抽象类和接口的不同{class Program{static void Main(string[] args){Person person = new Person();Console.WriteLine(person.GetAbstract());//5}}abstract class Man //与普通类不同,抽象类不能被实例化,它是用来被其他类进行继承的,在继承它的类中去实现其中声明的方法{public abstract int GetAbstract();//声明了一个抽象的方法}class Person : Man //同接口相同继承了抽象类,必须要实现其中声明的方法,否则编译不通过{public override int GetAbstract()//重写进行实现{return 5;}}}
接口和抽象类的区别:
1.接口中定义了一个方法,在继承它的类中就必须实现,而抽象类终究是一个类,它有类的特性,不但可以有抽象的方法,还可以定义一些常规的方法,字段。
2.接口中不能定义字段
总结:
抽象类依然是一个类,它不能被实例化,它可以包含字段或者成员变量,或者抽象方法和不抽象的方法,一个类继承了这个抽象类,它只需要实现一些抽象类中抽象的方法,而其他的是可以得到继承的。接口相当于是一个规则,它里面只能有方法、属性、索引和事件,它不能有成员变量(字段),一个类只能继承一个类,它可以继承多个接口,接口里面的所有的方法不许由继承它的类去实现。
