スポンサーサイト

--/--/-- --:-- - スポンサー広告

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

カスタムクラスと継承について(1)

2007/11/25 22:49 - AS3.0

属性定義
internal 同じパッケージ内の参照に対して表示されます。
protected同じクラスおよび派生クラス内の参照に対して表示されます。

  1. ClassA.as
  2. ClassB.as
  3. ClassC.as

var c:ClassC = new ClassC();
(1) trace( c.propA );
(2) trace( c.propAp );
(3) trace( c.propB );
(4) trace( c.propBp );
(5) c.funcA();
(6) c.funcAp();
(7) c.funcB();
(8) c.funcBp();
(6)(8)でのエラーメッセージ

アクセスできないプロパティ ○○ へのアクセスを、静的型 ClassC の参照を使用して試行しました。
(6)(8)でのエラーメッセージ

アクセスできないメソッド ○○ へのアクセスを、静的型 ClassC の参照を使用して試行しました。

  1. protected 指定をすると子孫クラスのインスタンスから祖先クラスのメンバを直接参照できない
  2. internal を指定すると子孫クラスのインスタンスから祖先クラスのメンバを直接参照できる

にほんブログ村 IT技術ブログへ

スポンサーサイト

コメントの投稿

非公開コメント

internal属性について

> internal を指定すると子孫クラスのインスタンスから祖先クラスのメンバを直接参照できる
_____
Mainクラスが、他のクラスと同一パッケージ内(トップレベル)だからでしょう。

試しに、ClassAとClassCを別パッケージ(test)内に収めると、ClassAのメンバにはアクセスできなくなります。アクセスを可能にするには、メンバをpublic属性に指定しなければなりません。

package test{
public class ClassA {
// ...[後略]...

package test{
public class ClassC extends ClassB {
// ...[後略]...

package {
import flash.display.Sprite;
import test.*;
public class Main extends Sprite {
// ...[後略]...
2008/01/24 02:31|野中 文雄 URL [ 編集 ]

ご教示ありがとうございます。
コードサンプルまでいただけて助かります。
このエントリー内容に対して、いくつかネット上でご指摘をいただきまして、再度勉強をしているところです。
もう少し private と public だけで済むプログラミングで場数をこなして、今一度継承に挑戦してみたいと思います。
2008/01/24 21:51|Aquioux URL [ 編集 ]
タグクラウド

最近の記事
カテゴリ
月別アーカイブ
プロフィール

Aquioux

Author:Aquioux
日曜 Flash プログラマ。
Flash 作品は本館で展示しています。


mailto:aquioux@mail.goo.ne.jp

ブログパーツ

あわせて読みたい

フィードメーター - 閃光的網站・弛緩複合体 -Review Division-


検索/translation
Google



オススメ本

コメント
トラックバック
RSS

Add to Google

Bloglinesで閲読登録

はてなRSSに追加

Subscribe with livedoor Reader

My Yahoo!に追加

Add to Technorati Favorites!

feedpathに追加

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。