四-面向对象-继承
继承:
一、什么是继承
概念:父亲有的东西,并且允许继承,所有孩子就都会有
一个父类可以拥有多个子类
一个子类只能拥有一个父类
二、父子之间的转换
子类可以转换成父类,这个父类只能转换成之前的子类
------子类可继承父类,父类可代表子类;兄弟之间不可继承。
namespace 继承 { class Program { static void Main(string[] args) { Fly f = new Fly(); //实例化 //f.Fling(); f.Chibang = "用来飞的,什么样都行,只要能飞"; Bird b = new Bird(); //b.Fling(); b.Chibang = "羽毛的"; //b.Chi(); Plane p = new Plane(); //p.Fling(); p.Chibang = "合金的"; //p.Chi(); //Fly f2 = (Fly)b; //f2.Fling(); //Bird b2 = (Bird)f2; //b2.Chi(); //Plane p2 = (Plane)f2; //p2.Chi(); Bird b3 = new Bird(); Fly f3 = (Fly)b3; Plane p3 = (Plane)b3; p3.Chi();
namespace 继承 { class Plane : Fly { public void Chi() { Console.WriteLine("汽油和柴油"); }
namespace 继承 { class Fly { /// <summary> /// 飞行 /// </summary> public void Fling() { Console.WriteLine("我会飞行!"); } private string _chibang; public string Chibang { get { return _chibang; } set { _chibang = value; } }
namespace 继承 { class Bird : Fly { public void Chi() { Console.WriteLine("虫子和谷子"); } }
1、访问修饰符:
对于跨类访问的一个权限限制
public : 公共的,引用命名空间即可随意访问,最高访问权限。
private : 私有的,只有在声明它的类和结构中才可以访问,访问权限最低。
Internal : 内部的,同一个程序集中所有的类都可以访问,程序集就是命名空间。(现阶段使用较少没有详细实例)
(不在同一命名空间时:导入命名空间后可以正常使用;方法:实例化+右键类名→解析→using 类)
Protected : 受保护的,只能在他自己和自己的子类中才能访问。(现阶段使用较少没有详细实例)
2、命名空间 = 程序集
一组类的组名
3、静态方法
static用来定义静态方法和属性;
非静态方法需要实例化对象然后用对象来调用;
Random r = new Random();//实例化
r.Next(); -- 非静态方法的使用方式
静态方法,可以实例化对象、也可不实例化对象,直接用类就能点出来使用;
Console.Write(); --静态方法的使用方式
(直接用类名点出来)
using stu; --------引用类 using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; namespace 继承 { class Program { static void Main(string[] args) { Student s = new Student(); s.Stu_Say(); Student.Say(); Random r = new Random(); Console.ReadLine(); } } }