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");
    }
}
相关推荐
沫璃染墨1 分钟前
《Qt从零入门系列(十四):QThread多线程详解——从线程创建到客户端阻塞处理》
开发语言·c++·笔记·qt·ui·交互·线程
hixiong12314 分钟前
C# 使用 ZXingCpp.Angle 进行条码、二维码识别
开发语言·c#·扫码
云和数据.ChenGuang16 分钟前
AI 工程师相关就业岗位(细分,偏工程落地,由底层到上层)
服务器·开发语言·人工智能·python
爱读书的小胖26 分钟前
Codewars:Last digit of a large number(C)解题分析
c语言·开发语言·r语言
码途行者38 分钟前
处理超时未支付订单:两套轻量化方案,附 PHP 极简实现
开发语言·redis·php
步步为营DotNet39 分钟前
System.Text.Json 源生成:三个“看起来已经生效“的静默失效
c#·.net·native aot·源生成
云和数据.ChenGuang42 分钟前
LangChain 实战指南:从入门到构建智能应用
开发语言·人工智能·python·langchain
const_qiu1 小时前
第三章 04:3.6 基础调用链的构建
开发语言·python
向上的车轮1 小时前
Python 大数据处理不慢:Polars + DuckDB + Arrow 实战指南
开发语言·python
Nebula_g1 小时前
云禾外卖补充—项目整体后端运行逻辑-对流程的更深层次理解
java·开发语言·网络·数据库·状态模式·javase