您的位置:首页 > 移动开发 > Unity3D

Unity3D学习之(封装和继承)

2014-12-04 00:00 162 查看
欢迎大家光临我的博客
首先今天主要学习了以下几个方面的知识:↓
面向对象技术的三个核心概念:封装、继承、多态!
接下来今天主要介绍前两个。
一、封装
(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)子类的声明语法:
子类声明:父类
{
子类体

①子类可以使用父类的protected和public可见的变量和方法
②私有成员和方法其实已经被继承了,但是它们却不可以被访问
③C# 中,如果类声明时没有声明父类,那么缺省为Object 类的子类,C#中的所有类都是System.Object类的子类。
④C#中,子类只能继承一个父类,但一个基类可以有多个直接派生类,继承是可以传递的。
 
(3)sealed修饰符
作用: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)方法隐藏
当子类方法的方法名和基类的方法名相同时,系统将隐藏基类同名方法,自动调用子类的同名方法。
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: