javaの初学者です。
継承における変数の問題です。
変数とメソッドを引き継げるはずですが、staticが付いている変数と、付いていない同名の変数があった場合はどうなるのでしょうか?
コンパイルは通り、それぞれ違う値が出ました。
それはつまり、スーパークラスとサブクラスで違う変数として定義されているということだと思いました。
よって、同じ名前の変数がstatic領域と、スタック領域に別々に格納されているという認識であっているでしょうか?
class A{ static int num=0; //←このスタティック変数のnum A(){ num++; System.out.println(num); } } class B extends A{ int num=10; //←このメンバ変数のnum B(){ num++; System.out.println(num); } } class Test{ public static void main(String[] args){ B b=new B(); } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/29 22:36
2018/05/30 06:52