A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
正直なところ、pamsdさんが何をしたいのか
いまいち分かりません。
もう少し詳細をご提示された方がいいと思いますよ。
一応文言をみる限りでは、
先に私が回答したような形で、Aを継承したクラスBを作成し、
Aで定義してNewしたインスタンスをBで定義した変数に代入すれば
元々クラスAだったインスタンスを
クラスBのインスタンスとして扱えます。
って感じでいけそうな気がしますが・・・。
また、
> フレームワークで ある程度できているため そういう変更とかは できないんですよね。
こういった要件があるのであれば、どんなフレームワークを使っているのか提示して頂けないと、
手探りな感じの回答しか得られないですよ。
No.3
- 回答日時:
No.1さんへの返答を見るに、クラスAを継承してクラスBを作りたいということでしょうか?
もしそうであれば、
Public Class A
'何かの定義
End Class
Public Class B
Inherits A
'追加の定義
End Class
みたいな感じでできると思いますよ。
ちなみにこういう構造で作るのであれば、抽象クラスの作り方についても
調べてみることをお勧めします。
No.2
- 回答日時:
根本的に何かの認識が違う気がする。
。。> Bは Aから呼び出されます。
クラスはインスタンスを生成する必要があり、「呼び出す」という時点で
インスタンスの話になります。インスタンスが別なら、
> 単純にメソッドの引数として渡すか、
> コンストラクタ(Newメソッド)を使って初期値を設定するかだと思います
これが正解であり、
> 引数として使えない、また Newは できない状態で ということです。
この時点でおかしい事になります。
> オーバーライドして 使用する箇所で用いたいのですが・・・
この表現だと、
> Bは Aから呼び出されます。
インスタンスの観点からは矛盾した事を言っているように思います。
Bは Aから呼び出せません。。。というかBとAは関係ありません。
継承などで基底クラスの定数などを利用したいなら、MyBase などで
基底クラスを参照すればいいですが、インスタンスが別であり、
変数の値が独自に設定されているなら、
> 単純にメソッドの引数として渡すか、
> コンストラクタ(Newメソッド)を使って初期値を設定するかだと思います
しか無いと思います。
同じ基底クラスの「スポンジケーキClass」に「苺Property」を乗せた
「苺ショートケーキClass」と、「栗Property」を乗せた「マロンショート
ケーキClass」があったとして、実際に売るには、それぞれのインスタンス
(実体)を複数作って店頭に並べるわけです。「Class」はレシピの段階であり、
そのままでは売れません。
あるお客さんが買った「苺ショートケーキ(インスタンス)」の「スポンジ
ケーキ(インスタンス)」を食べた時に、「マロンショートケーキ(インスタンス)」
の「スポンジケーキ(インスタンス)」が減っていく事は無いですよね?
インスタンスは個々が独立しており、そこに収められるデータに関しては
関連を持ちません。(定数やメソッドの形式などはレシピ(設計図)通りなので
共通します)
データの関連を持たせるなら、メソッドの引数などでインスタンスの参照を
渡す必要があります。
No.1
- 回答日時:
こういう意味ですか?
単純にメソッドの引数として渡すか、
コンストラクタ(Newメソッド)を使って初期値を設定するかだと思います
Public Class A
Public A1 As Integer
Private _b As B
'mainというメソッドの中でBを呼び出す
Private Sub main()
A1 = 1
_b = New B(A1)
_b.cry() '"わん"と表示
A1 = -1
_b = New B(A1)
_b.cry() '"にゃー"と表示
End Sub
End Class
Public Class B
Private A1 As Integer
Public Sub New(ByVal _a2 As Integer)
A1 = _a2
End Sub
Public Sub cry()
If _a1 < 0 Then
MsgBox("にゃー")
Else
MsgBox("わん")
End If
End Sub
End Class
この回答への補足
回答ありがとうございます。
>単純にメソッドの引数として渡すか、
コンストラクタ(Newメソッド)を使って初期値を設定するかだと思います
これ以外の手段で ありませんでしょうか?
引数として使えない、また Newは できない状態で ということです。
オーバーライドして 使用する箇所で用いたいのですが・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) IT初心者です 仕事で、vb.netで作成されたdllをvbaで呼び出すプログラムを作成しろと言われ 1 2023/03/27 08:22
- Excel(エクセル) エクセルの関数について教えてください 4 2023/05/19 12:04
- Visual Basic(VBA) Sheet1のA列にコードB列にメアド、Sheet2のB列にコード一覧とD列にメアド一覧があり、Sh 3 2022/10/19 11:57
- Excel(エクセル) Excel セルに入っている日付を参照して、別シートのリストを表示させたい 1 2022/04/12 17:02
- Excel(エクセル) Excelの複数人での参照について 2 2022/06/01 13:38
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- Excel(エクセル) エクセルでIF関数中にIFERROR関数を使いたいのですが???? 5 2022/04/08 13:24
- Excel(エクセル) エクセル関数についてお教えください 3 2023/07/24 12:33
- Excel(エクセル) エクセルのINDEXについて 2 2022/04/17 21:41
- C言語・C++・C# 変数の初期化について 5 2022/10/02 08:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
-
private static という変数の修飾
-
変数名の付け方
-
VB.NET getとsetの概念がわかり...
-
変数の参照でエラーが出てしま...
-
C# インスタンスの破棄
-
抽象クラスのインスタンス生成...
-
オブジェクト参照がオブジェク...
-
他のファイルの変数参照
-
クラス型がインスタンス化され...
-
エクセル(複数インスタンス)...
-
C#において、同じインスタンス...
-
VB6.0のクラスで、自分自身のイ...
-
マルチスレッドでのインスタン...
-
文字列を日付に変換でParseExce...
-
String型もしくはint型をIntege...
-
VC#での24ビットbmp形式での保...
-
newしないインスタンス?実体化...
-
生成したインスタンスを削除す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数名の付け方
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
-
private static という変数の修飾
-
VB.NET getとsetの概念がわかり...
-
C#において、同じインスタンス...
-
生成したインスタンスを削除す...
-
C# インスタンスの破棄
-
newしないインスタンス?実体化...
-
SQLを連続発行する時の正しい(?...
-
「インスタンス」の意味をわか...
-
文字列を日付に変換でParseExce...
-
変数の参照でエラーが出てしま...
-
フォームの存在をチェックする方法
-
javaのクラスの作り方、エラー...
-
オブジェクト参照がオブジェク...
-
String a = "a"; と String b =...
-
エクセル(複数インスタンス)...
-
C#「オブジェクト参照が必要で...
-
他のファイルの変数参照
おすすめ情報