C# 类的继承和访问

学习笔记------类的继承和访问:

class MyBaseClass {
public void PrintSun(){
Console.WriteLine("base1111111111");
}

}
class MyClass : MyBaseClass
{
new public void PrintSun()
{
base.PrintSun();//访问(已经隐藏的)基类成员变量和函数
Console.WriteLine("child2222222222");
}

}
class Program
{
static void Main(string[] args)
{

var mm = new MyClass();
mm.PrintSun();
MyBaseClass mbase = (MyBaseClass)mm;//访问(已经隐藏的)基类成员变量和函数
mbase.PrintSun();
Console.WriteLine();
Console.ReadKey();

}
}

1、所有类的基类是Object,这个很多从事一两年C#是不知道的大有人在,不是我说的绝对但是却是事实。

2、派生类继承基类所有变量和方法

3、派生类可以重写基类的变量值和方法体:这里我说的不是很准确,只是想表达的更好理解,比如基类有个  string  NameStr=“张三”;继承类可以对他重新赋值,如:New string  NameStr=“李四”;

但是原来基类的变量并没有删除或者消失,只是隐藏起来了,简单点说就是不能直接调用了,必须要通过某种方式去调用。

那怎么才能调用被隐藏了的基类的成员变量和函数呢?

A、对于在派生类中调用:提供了base这个方式,如:base.NameStr就可以调用到已经被隐藏了的基类成员变量和函数

B、在其他地方进行实例化调用,方法是先对派生类进行实例化:

MyClass  my=New  MyClass(); 然后对派生类的实例对象进行强制转换: MyBaseClass mbase = (MyBaseClass)my;然后用mbase进行调用就可以实现对基类的成员变量和成员函数进行调用。
时间: 2024-10-06 14:29:21

C# 类的继承和访问的相关文章

(继承及其访问限定符)&&(派生类及其默认成员函数)&&(赋值兼容规则)

◆继承: ★继承概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能.这样产生新的类,称派生类.继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程. 继承定义格式 ★继承关系&访问限定符 class Base { public: Base() { cout<<"B()" <<endl; } ~Base () { cout<<"~

C++入门经典-类成员的可访问性,继承后的可访问性

1:关键字public.private.protected说明类成员是共有的.私有的,还是保护的.这3个关键字将类划分为3个区域,在public区域的类成员可以在类作用域外被访问,而private区域和protected区域只能在类作用域内被访问. 2:这3种类成员的属性如下: public属性的成员对外可见,对内可见. private属性的成员对外不可见,对内可见. protected属性的成员对外不可见,对内可见,对派生类可见. 3:继承后可访问性.继承方式有public.private.p

(继承及其访问限定符)&amp;&amp;(派生类及其默认成员函数)&amp;&amp;(赋值兼容规则)

◆继承: ★继承概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能.这样产生新的类,称派生类.继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程. 继承定义格式 ★继承关系&访问限定符 class Base { public: Base() { cout<<"B()" <<endl; } ~Base () { cout<<"~

C#继承机制 访问与隐藏基类成员

(1) 访问基类成员 通过base 关键字访问基类的成员:   调用基类上已被其他方法重写的方法.  指定创建派生类实例时应调用的基类构造函数.  基类访问只能在构造函数.实例方法或实例属性访问器中进行. 从静态方法中使用 base 关键字是错误的. 示例:下面程序中基类 Person 和派生类 Employee 都有一个名为 Getinfo 的方法.通过使用 base 关键字,可以从派生类中调用基类上的 Getinfo 方法. using System ;public class Person

PHP 类的继承 访问修饰符 重写

类的继承: 某些类A具有的某些特性,另一个类B,也具有A类的所有特性并且也有自己的特性,此时我们就可以实现B类使用A类的特性信息并继续添加自己的一些特有的特征信息  关键字是:extends基本概念:   继承:一个类从另一个已有的类获得其特性,称为继承   派生:从一个已有的类产生一个新的类,称为派生   也可以理解为:已有类为父类,新建类为子类,父类也叫基类,子类也叫派生类   一个类只能从一个上一级类继承其特性 叫单继承   多继承的话 就是继承他父类的父类 也就是爷爷类访问(权限)修饰符

this/super/static/final/匿名对象/继承/抽象类/访问权限修饰符

1.this关键字的作用     1)调用本类中的属性;     2)调用本类中的构造方法;且只能放首行,且必须留一个构造方法作为出口,即不能递归调用     3)表示当前对象; 2.匿名对象     直接new出来的对象,不创建变量名,且只能使用一次,通常作为方法的参数及返回值使用 3.继承     继承是面向对象的三大特征之一,通过关键字:extends实现,被继承的类称为父类(也称作基类/超类),实现继承的类称为子类(也称作派生类).     特点:     (1)通过继承,子类可以直接访

《C#图解教程》读书笔记之四:类和继承

本篇已收录至<C#图解教程>读书笔记目录贴,点击访问该目录可获取更多内容. 一.万物之宗:Object (1)除了特殊的Object类,其他所有类都是派生类,即使他们没有显示基类定义. (2)一个派生类只能有一个基类,叫做单继承. 二.基类那点事儿 (1)如何在派生类中访问基类成员?使用base关键字,如base.Field1: (2)如何屏蔽基类中某个方法或成员?在派生类定义的成员定义前使用new关键字: (3)如何使用基类的引用?这里可以借鉴里氏替换法则,创建指向派生类的基类对象. 三.小

类与继承(一)

在Java中,类文件是以.java为后缀的代码文件,在每个类文件中最多只允许出现一个public类,当有public类的时候,类文件的名称必须和public类的名称相同,若不存在public,则类文件的名称可以为任意的名称(当然以数字开头的名称是不允许的). 在类内部,对于成员变量,如果在定义的时候没有进行显示的赋值初始化,则Java会保证类的每个成员变量都得到恰当的初始化: 1)对于  char.short.byte.int.long.float.double等基本数据类型的变量来说会默认初始

分类 类扩展 继承 协议 委托

分类 类扩展 继承 协议 委托 分类(Category) 不产生新类,不修改原类,但有自己的.h和.m文件 分类只能向原类中增加方法,或者重写原类的方法 声明的@property只会生成getter setter方法的声明 类.h中定义的方法必须实现,但分类.h中定义的方法,可以不实现 同名方法,分类的优先级高类别主要有3个作用:(1)将类的实现分散到多个不同文件或多个不同框架中.(2)创建对私有方法的前向引用.(类.h中未声明,但存在于.m中的私有方法,通过在分类.h中声明一下,就可以在其他类