- PR -

protectedについて

1
投稿者投稿内容
まつじん
ベテラン
会議室デビュー日: 2005/12/02
投稿数: 54
投稿日時: 2006-05-17 11:49
こんにちは。
初歩的なことでお聞きしたいのですが下記のような
コードを記述した所、

public abstract class ParentTree extends JTree {
protected abstract void changePopupMenu();

protected boolean authorization(TreePath path) {
    //処理省略
}

}

public class ChildTree extends ParentTree {
protected void changePopupMenu(TreePath path) {
boolean b = authorization(path); ←eclipseでエラーが表示される
}
}

eclipseでauthorization(path);の箇所で赤く表示され、「メソッドauthorization(TreePath path)を作成します。」と表示されてしまいます。
自分の意識では継承元のメソッドがprotctedの場合はサブクラスでも利用できると思っていましたが認識が違うのでしょうか?
あと、試しにsuper.authorization(path);でやっても「ParentTreeにメソッドauthorization(TreePath path)を作成します。」と表示されてしまいました。
お気づきの箇所があれば教えて頂けますでしょうか。よろしくお願い致します。
まつじん
ベテラン
会議室デビュー日: 2005/12/02
投稿数: 54
投稿日時: 2006-05-17 12:09
すみません。
コードが間違っていました。
public abstract class ParentTree extends JTree {

protected abstract void changePopupMenu();

class TargetListener implements DropTargetListener{

protected boolean authorization(TreePath path) {
    //処理省略
}

}

}

public class ChildTree extends ParentTree {

protected void changePopupMenu(TreePath path) {

boolean b = authorization(path); ←eclipseでエラーが表示される
}

}

これを修正して分かったのですが、インナークラスがあった為に、authorization(path);を
呼び出すことが出来ないことが分かりました。
大変失礼しました。
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2006-05-17 12:50
authorization()はParentTreeのメソッドでなくて、ParentTree.TargetListenerのメソッドのようですが。
1

スキルアップ/キャリアアップ(JOB@IT)