Program.cs文件:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace Test1
{
class Program
{
static void Main(string[] args)
{
Person per1 = new Person();
per1.Id = 1;
per1.Name = "2515";
per1.Pass = "laixiao";
Student stu1 = new Student();
stu1.showInfo();
Person.phoneNumber = 1557781;
Console.WriteLine(Person.phoneNumber);
/*
1.多态:不同对象对同一方法做出不同的实现。
2.抽象类和接口的区别:
抽象类有字段和属性,接口没有。
抽象类只能单一继承,接口可以多重继承。
....
3.下面有几个比喻说的很贴切,大家从中也许也会领悟很多
1-.飞机会飞,鸟会飞,他们都继承了同一个接口“飞”;但是F22属于飞机抽象类,鸽子属于鸟抽象类。
2-.就像铁门木门都是门(抽象类),你想要个门我给不了(不能实例化),但我可以给你个具体的铁门或木门(多态);
而且只能是门,你不能说它是窗(单继承);一个门可以有锁(接口)也可以有门铃(多实现)。门(抽象类)定义了你是什么,
接口(锁)规定了你能做什么(一个接口最好只能做一件事,你不能要求锁也能发出声音(接口污染))。
*/
}
}
}
Person.cs文件:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Test1
{
class Person
{
//选中一行或者三行 -> 右键 ->快速操作
private int id;
private string name;
private string pass;
public static int phoneNumber;
public virtual void showInfo() {
Console.WriteLine("我是父类:子类重写virtual方法时用 public override void showInfo(){}");
}
public Person() {
}
public Person(int id, string name, string pass)
{
this.id = id;
this.name = name;
this.pass = pass;
}
public int Id
{
get
{
return id;
}
set
{
id = value;
}
}
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
public string Pass
{
get
{
return pass;
}
set
{
pass = value;
}
}
}
}
Student.cs文件:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Test1
{
class Student:Person
{
//public override void showInfo()
//{
// Console.WriteLine("我是子类:重写了父类的virtual方法");
//}
}
}