Unity3D学习之(封装和继承)

欢迎大家光临我的博客

首先今天主要学习了以下几个方面的知识:↓

面向对象技术的三个核心概念:封装、继承、多态!

接下来今天主要介绍前两个。

一、封装

1)封装:将数据和操作组合到一起,并决定哪些数据和操作对外是可见的。

 

2)封装的作用:

①隐藏类的实现细节:使用方法将类的数据隐藏起来。

②迫使用户去使用一个界面去访问数据:定义程序如何引用对象的数据,控制用户对类的修改和访问数据的程度。

③使代码更好维护:类的内部实现改变,对外接口可以不变。

 

3)封装的实现:

①用方法来实现封装:

例如:

public class Department

{

      private string departname;

       // 读方法

      public string GetDepartname()

     {

         return departname;

     }

     //写方法

     public void SetDepartname( string departname)

     {

       this.departname=departname;

     }

}

 

②用属性来实现封装:用属性来实现封装会更方便。

例如:

class Java

    {

        private string name;

        private int weight;

        public string Name 

        {

            set

            {

                name = value;

            }

            get 

            {

                return name;

            }

        }

        public int Weight

        {

            set

            {

                weight = value;

            }

            get

            {

                return weight;

            }

        }

static void Main(string[] args)

        {

            Java s = new Java();

            s.Name = "小刚";

            string name = s.Name;

            s.Weight = 60;

            int weight = s.Weight;

 Console.WriteLine(name+"的体重为:"+weight+"公斤");

Console.ReadKey();

    }

}

 

二、继承

1)继承的作用:

继承提供了创建新类的一种方法,继承对开发者来说就是代码共享。

①通过继承创建的子类是作为另一个类的扩充或修正所定义的一个类。

②子类从超类(父类)中继承所有方法和变量。

③子类和超类之间是特化与范化的关系。

 

2)子类的声明语法:

子类声明:父类

{

子类体

} 

①子类可以使用父类的protectedpublic可见的变量和方法

②私有成员和方法其实已经被继承了,但是它们却不可以被访问

C# 中,如果类声明时没有声明父类,那么缺省为Object 类的子类,C#中的所有类都是System.Object类的子类。

C#中,子类只能继承一个父类,但一个基类可以有多个直接派生类,继承是可以传递的。

 

3sealed修饰符

作用:sealed 修饰符会阻止其他类从该类继承。

例如:

sealed class A

    {

        int test;

        public void Sum(int i,int j)

        {

            int sum = i + j;

            Console.WriteLine("I am A ,my sum ={0}",sum);

        }

    }

 class B : A 

    {

        public void Minus(int i,int j)

        {

            int minus = i - j;

            Console.WriteLine("I am B ,my minus ={0}", minus);

            this.Sum(3, 4);     //这时编译器会报错    

        }

     }

 

4)派生类

派生类的建立需要注意:

①派生类会继承基类除了构造函数和析构函数的所有成员。

②派生类调用构造函数时,会先调用基类的构造函数。默认调用没有参数的构造函数。

③用base关键字显式调用基类构造函数(如果基类定义了带有参数的构造函数,那么此构造函数必须被执行,且在派生类中实现该构造函数,此时我们可以使用base关键字)

 

5)方法隐藏

当子类方法的方法名和基类的方法名相同时,系统将隐藏基类同名方法,自动调用子类的同名方法。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值