12-14面向对象--继承、多态

一、继承

1、类成员的访问

使用场合

C#2.0

Visual Basic 2005

说明

Type

(指类,接口等类型)

public

public

访问不受限制

internal

Friend

访问范围仅限于同一程序集

Member

(指类型中的成员,比如类中的字段)

public

public

访问不受限制

internal

Friend

访问范围仅限于同一程序集

protected

protected

访问范围限于自己或派生出来的子类型

Protected internal

Protected Friend

在同一程序集内访问不受限制,在不同程序集中仅由此类型派生出来的子类型可访问

private

private

仅自己可以访问

1)public、private和protected的区别:

在子类中引用:

12-14面向对象--继承、多态_第1张图片

2)static: 对变量的静态设置(累加求和)

在父类中的方法:

在子类中的方法:

12-14面向对象--继承、多态_第2张图片

3)internal

12-14面向对象--继承、多态_第3张图片

//在某个类中没有任何可访问性关键字在他前面,它就是internal的。

internal class A     

     {

        internal int InternalI = 0;

    }

它完全等同于:

 class A   //在某个类中没有任何可访问性关键字在他前面,它就是internal的。

    {

        internal int InternalI = 0;

    }

12-14面向对象--继承、多态_第4张图片

它完全等同于:

12-14面向对象--继承、多态_第5张图片

2、多态:当出现继承关系,就会伴随出现多态;简单的理解就是,子类不仅继承了父类的所有属性和方法,每一个子类又会有属于自己的个性的属性和方法。

12-14面向对象--继承、多态_第6张图片

3、方法重载、隐藏与虚方法调用

由于子类对象汇集了父类和子类的所有公共方法,有些方法父类和子类有重复的方法,所以调用时会有许多问题出现。

子类方法与父类方法之间的关系有三种:

1)扩充:子类方法,父类没有;

2)重载:子类有父类的同名函数,但参数类型或数目不一样;

3)完全相同:子类方法与父类方法从方法名称到参数类型完全一样。

12-14面向对象--继承、多态_第7张图片

在主函数中调用:

12-14面向对象--继承、多态_第8张图片

【练习1】方法重载:

12-14面向对象--继承、多态_第9张图片

【练习2】方法重写:在子类同名方法前加override,表明对父类同名方法进行了重写。父类

子类默认的是new;

父类默认的是override:

1)加override:(只有当子类转化成父类时起作用)执行子类的方法(子类方法覆盖了父类方法)

2)不加override:变量名后.(点)哪个类就执行该类的方法。

12-14面向对象--继承、多态_第10张图片

12-14面向对象--继承、多态_第11张图片

12-14面向对象--继承、多态_第12张图片

 

 

 

你可能感兴趣的:(面向对象)