サブパッケージのクラスからデフォルトパッケージのクラスにアクセスしようとすると、エラーメッセージが表示されました。誰でもこれを整理するのを手伝ってくれますか?
参考までに、私のパッケージ構造は A -> B です。フォルダ 'A' がデフォルト パッケージで、'B' がサブ パッケージです。
前もって感謝します。
サブパッケージのクラスからデフォルトパッケージのクラスにアクセスしようとすると、エラーメッセージが表示されました。誰でもこれを整理するのを手伝ってくれますか?
参考までに、私のパッケージ構造は A -> B です。フォルダ 'A' がデフォルト パッケージで、'B' がサブ パッケージです。
前もって感謝します。
private、protected、publicはどうですか?他の回答では説明が見られなかったので、ここにあります。
class A
{
    private var _password:String;
    public var username:String;
    protected var serverURL:String;
    public function login():void
    {
         // some code
         callServerForLogin();
    }
    protected function callServerForLogin():void
    { 
        // some code
    }
 }
 class B extends A
 {
      public function B()
      {
           var parentPassword = super._password;  
           // FAILS because private and accessible only inside class A
           var parentUsername = super.username 
           // all ok in here, public property
           var parentServerURL = super.serverURL;
           // all ok, because it is protected
           // also we can call super.login(); or super.callServerForLogin();
      }
      // IMPORTANT we are also allowed to override public and protected functions
      override public function login():void
      {
          super.login(); 
          // we call the parent function to prevent loosing functionality;  
          Alert.show("Login called from class B");
      }
      override protected function callServerForLogin():void
      {
           super.callServerForLogin();
           // keep also parent logic
           Alert.show("calling protected method from B");
      }
 }
 // ----  Now considering you declare an object of type B you can do the following
 var bObj:B = new B();
 // access public properties and call public functions from both B and A
 bObj.username = "superhero";
 bObj.login();
 // will get compile error for next lines
 bObj.serverURL = "host.port";
 bObj.callServerForLogin();
クラス A のオブジェクトを作成し、そのオブジェクトからクラス インスタンス メソッドを呼び出すだけです。
var classAObj:A = new A();
classObj.MethodA();
あなたが探しているのは、クラス B がクラス A を拡張することだと思います。コードでは次のようになります。
package main
{
    class B extends A
    {
        // Code here...
    }
}
パッケージ内にコードを配置しても、一般に機能には影響しません。より組織的なツールです。internal(キーワードを除く)