as3.0父类 parent中我要用到子类subclass中的一个名为key的变量,如何访问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了as3.0父类 parent中我要用到子类subclass中的一个名为key的变量,如何访问相关的知识,希望对你有一定的参考价值。

我子类中key的值是在不断变化的,我想通过访问子类中key的值来控制父类中的一个函数,请问父类怎么访问子类中的变量
求效率和速度

参考技术A 如果是父类子类的关系的话这个变量应该定义在父类中.声明为protected或者public都行

如果是container-child的关系的话 声明为public然后通过子类对象可以直接调用
参考技术B 子类. 变量 权限必须是public

父类与子类的转换as,is

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

namespace 子类与父类的相互转换
{
    class Program
    {
        static void Main(string[] args)
        {
            //try catch finally 与 continue
            //如果在try中遇到continue,则忽略try中continue之后的语句
            //但是依然执行finally中语句
            //finally之外的语句也不执行
            bool _flag = true;
            while(true)
            {
                try
                {
                    //if(_flag)
                    //    continue;
                    
                    //如果_falg为true,这下面的两句不执行
                    //Person per = new Student();
                    //per.Say();//此时输出father 

                    //类的转换:as is
                    //1. is:返回bool类型,指示是否可以做这个转换
                    //2. as:如果转换成功,则返回对象,否则返回null
                    //作用:我们可以将所有的子类当做是父类来看,针对父类进行编程
                    //      可以写出通用代码,从而适应需求的不断改变  
                    Person per = new Student();

                    Student stu1 = per as Student;
                    if(stu1 != null)
                    {
                        stu1.Say();
                    }

                    Teacher tea1 = per as Teacher;
                    if(tea1 == null)
                    {
                        Console.WriteLine("转换失败");
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    //如果try中执行了continue,则这两句依然要执行
                    Console.WriteLine("finally");
                    Console.ReadKey();
                }

                //如果在try中执行continue,则下面的两条语句并不执行
                Console.WriteLine();
                Console.ReadKey();
            }
            
        }
    }

    class Person
    {
        public void Say()
        {
            Console.WriteLine("father");
        }
        
    }

    class Teacher:Person
    {
        public new void Say()
        {
            Console.WriteLine("Teacher");
        }
    }

    class Student:Person
    {
        public new void Say()
        {
            Console.WriteLine("Student");
        }
    }
     
}

  

以上是关于as3.0父类 parent中我要用到子类subclass中的一个名为key的变量,如何访问的主要内容,如果未能解决你的问题,请参考以下文章

Arduino在子类上使用父类Methode

Bootstrap关闭子类页面,刷新父类页面

C++中子类的变量能不能覆盖父类的变量?

Python继承父类parent的正确格式为

C++子类扩展父类

面向对象三大特性-继承