【c#入门杂选】继承和抽象类

在这里插入图片描述

👨‍💻个人主页:@元宇宙-秩沅

hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

本文由 秩沅 原创

收录于专栏 C#专栏

 生活如茶需慢品,岁月如歌需静听!

目录

1.子类对父类成员的继承

2.c#重写和java重写的区别

3,父类虚方法和子类重写方法的应用

4,隐藏方法

5.抽象类的特点

6,什么时候抽象类可构造函数,怎么进行操作

7,抽象方法 类似于虚方法

8.密封类和密封方法 --sealed

9.在子类调用父类上Java和c#有什么区别

10,访问修饰符的层级关系

11,命名空间的引用

12,internal 和 public的区别

13,Const 和 static的区别

14,readonly什么时候用

15,在访问类中静态成员的格式上,java和c#有什么区别


1.子类对父类成员的继承

子类是全部继承自父类,只不过是父类私有的成员,子类只是继承,但未具备访问的权限

2.c#重写和java重写的区别

1.c#重写:

父类需要加上修饰符,virtual ,子类需要重写方法需要加上 override ,

2,java的重写:

类似c#的隐藏函数,无修饰符,直接重写

3,父类虚方法和子类重写方法的应用

父类 xx= new 子类();

父类 . (子类重写方法的调用)

4,隐藏方法

1,操作:去掉父类和子类的修饰符 vritual 和 override ,但是子类要加上 new ,用来提醒程序员,在父类有同名方法现在是否确定重写 ,之后照常重写

2, 好处: 对父类的方法隐藏

5.抽象类的特点

1,抽象方法必须在抽象类里面

2,抽象 :abstract

3,不完整,因为它的抽象方法不具有函数体

4,可声明,不可实例化

子类继承抽象类的特点:

1.不是抽象类的子类如果要继承抽象父类那么就一定要重写父类中 的抽象方法,但是抽象子类不用重写

2.抽象类中可以有抽象成员也可以没有抽象成员

3.父类的构造函数有参数的时候,子类的构造函数也要把父类的参数并上去如下

public son( int a , int b ) : base (a ,b ){}

6,什么时候抽象类可构造函数,怎么进行操作

1,当抽象子类继承抽象父类进行抽象方法重写时,然后

抽象父类 xx =new() 子类 ; // 子类不是抽象的

xx.(子类重写方法的调用)

7,抽象方法 类似于虚方法

1.问题1: 抽象类 和 抽象方法的好处?

比如: NPC是一个怪物群体的统称,在NPC中它也规定有一个攻击方式一栏,那么比如说大大怪和小小怪,他们都是所属于NPC,但是他们的攻击方式需要自己去重写。

2.问题2:抽象方法 和虚方法的 好处?

说白了就是可以在子类进行重写

8.密封类和密封方法 --sealed

1.密封类: 不可被继承

2.密封方法 :针对子类的重写方法 ,只能重写一次

9.在子类调用父类上Java和c#有什么区别

1.java : 用super; 去调用分类隐藏的方法//父类的私有成员可以被继承但是不能被访问

2,c#: 用base;

10,访问修饰符的层级关系

访问修饰符级别低的不可以访问级别高的

11,命名空间的引用

也就是说要访问其他项目中的类该怎么操作:

1.在新建的项目中右键 添加 项目引用 ,选中确定

2.用using去添加

12,internal 和 public的区别

明显的区别在于前者只能同一个在项目(程序集)下使用,

13,Const 和 static的区别

1,static是静态变量,const是静态常量。

(1)static修饰变量,具有共享性

(2)static修饰方法,则方法中只能调用静态数据

(3)static修饰类,类中只能全部时静态成员,并且不能实例化,因为可以直接调用

形象比喻为 ,模板,直接拿来使用,具有公共性

2,用const修饰的量不可改变 ,且必须初始化,否则会报错

14,readonly什么时候用

是public 和 readonly修饰的变量 , 该变量 被你限制为只能在它的构造函数中给他赋值,而不能通过其他情况给他赋值

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace siki_测试2
{
   public   class _readonly_
    {
        public readonly int a;  //在外面被调用是不能修改其值
        public int b;           //在外面 被调用时可以修改它的值

     public _readonly_(int a, int b)
        {
            this.a = a;
            this.b = b;
        }

       
    }
}

15,在访问类中静态成员的格式上,java和c#有什么区别

java访问类静态成员时用类成员名

c#则用类名访问

你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!
栓Q
在这里插入图片描述

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秩沅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值