P24 C# 类

(1)、类修饰符:

new:

public:外部可自由访问

protected: 访问限制在继承链上

internal: 在当前的项目中,可以自由访问,默认的访问级别

private: 只能修饰类的成员类(内部类的可以)

abstract:

sealed: 表示该类不可被继承

static:

(2)、类的继承是使用 " :"符号,只能继承一个父类,但可以实现多个接口,子类是不可以超越父类的访问级别

class A : B{

}

错误示例:

internal class Vehicle {

}

public class Car : Vehicle {

}

(3)、子类是父类的实例,如何判断是不是实例

internal class Program{

static void Main(string[] args){

Vehicle vehicle = new Vehicle();

Object o1 = new Vehicle();

Object o2 = new Car();

//结果是true

Console.WriteLine(o2 is Vehicle);

}

}

class Vehicle {

}

class Car : Vehicle {

}

(4)、在子类中访问父类的内容使用 "base" 关键字

(5)、当父类的构造器是带参数的时候,子类的构造器也必须是带参数的,同时传递参数给父类

public class Vehicle {

public Vehicle(string owner)

{

this.Owner = owner;

}

public string Owner { get; set; }

}

public class Car : Vehicle {

//在初始化时,就已经将参数传递给父类了,并且设置了父类的Owner

public Car(string owner) :base(owner)

{

}

public void ShowOwner() {

}

}

(6)、类的重写,注意关键字 virtual override ,只有同时存在,才会叫重写,一旦重写了方法,那么在调用的时候,都是子类的实例了。

示例:

复制代码
internal class Program
{
    public static void Main(string[] args)
    {
        Vehicle c = new Car();
        
        //结果是:Car is running
        c.Run();
    }
}
复制代码
class Vehicle
{
    public virtual void Run()
    {
        Console.WriteLine("I'm running");
    }
}


class Car : Vehicle
{
    public override void Run()
    {
        Console.WriteLine("Car is running");
    }
}
相关推荐
yyytucj10 分钟前
python--列表list切分(超详细)
linux·开发语言·python
肖田变强不变秃39 分钟前
C++实现有限元计算 矩阵装配Assembly类
开发语言·c++·矩阵·有限元·ansys
王磊鑫43 分钟前
Java入门笔记(1)
java·开发语言·笔记
喜欢猪猪1 小时前
分布式与微服务:构建现代应用的关键架构
开发语言·php
硬件人某某某1 小时前
Java基于SSM框架的社区团购系统小程序设计与实现(附源码,文档,部署)
java·开发语言·社区团购小程序·团购小程序·java社区团购小程序
kucupung1 小时前
【C++基础】多线程并发场景下的同步方法
开发语言·c++
__water1 小时前
15_业务系统基类
c#·unity6000·业务系统基类
Quantum&Coder1 小时前
Objective-C语言的计算机基础
开发语言·后端·golang
五味香1 小时前
Java学习,List 元素替换
android·java·开发语言·python·学习·golang·kotlin
Joeysoda2 小时前
Java数据结构 (从0构建链表(LinkedList))
java·linux·开发语言·数据结构·windows·链表·1024程序员节