ショートステップ、千マイル;ない小川、jianghaiに。
Java言語の基礎
Javaのsuperキーワード
スーパーは、親オブジェクトへの直接参照です。方法は、アクセスまたは親クラスのプロパティは、サブクラススーパーによって覆われていてもよいです。
すべての建設方法の最初の行は、明示的にスーパーを(...)と呼ばれるかどうか、この(...);その後、引数なしのコンストラクタ呼び出し親クラスを意味し、Javaのデフォルトのsuper()を呼び出します。ここでは、スーパー()を省略することができます。
- サブクラスで親クラスのメソッドやプロパティを呼び出します
サブクラスで親クラスのプロパティやメソッドを呼び出します。特定のサブクラスではそう、あなたは親クラスのプロパティやメソッドを呼び出したい場合は、superキーワードを使用する必要があり、親クラスやメソッドと同じ属性を持っています。子クラスと同じ名前の親クラスのプロパティやメソッドは、親クラスのメソッドやプロパティがカバーしたり非表示にするため。スーパークラス属性とクラスメソッドの親クラスを参照することができます。
クラス父{ 公共の文字列名=「チュチュ」。 = 24公共int型の年齢; (){公共のボイド睡眠 のSystem.out.println( "!父は眠っています"); } パブリック無効の仕事(){ System.out.printlnは( "父が働いています!"); } } publicクラスの子供は、父親{延び パブリック文字列名= "tututuを"; ます。private voidテスト(){ System.out.printlnは( "父的名字是:" + super.name)。 System.out.println( "子的名字是:" +名)。 System.out.println( "父的年龄是:" +年齢)。 } パブリック無効スリープ(){ System.out.printlnは( "子供が眠っています!"); super.work(); } パブリック静的無効メイン(文字列[] args){ // TODO自動生成方法スタブ 子子=新しい子()。 child.test(); child.testmethod(); } }
プログラムの出力:
父の名前:チュチュ 子供の名前:tututu 父の年齢:24 !子で眠っている !父は眠っている 父で作業を!
- サブクラスのコンストラクタで参照するために、親クラスであります
Javaでは、サブクラスが派生クラスの親クラスである、それは親クラスがインスタンス化されるに依存してインスタンス化します。そのコンストラクタのいずれかの親クラスを初期化しなければならないので、Javaはこの操作を完了するために、superキーワード親クラスのコンストラクタを呼び出すことです。
クラス父{ 公共の文字列名=「チュチュ」。 = 24公共int型の年齢; 公共の父(int型の年齢){ } ます。public void睡眠(){ System.out.printlnは( "父は眠っています!"); } } publicクラスの子供は、父親{延び 公共子(int型の年齢){ スーパー(年齢)。 } パブリック文字列名=「tututu」。 公共のボイドのprintName(){ System.out.printlnはは( "父の名は:" + super.name + "!"); } プライベートボイドのtestMethod(){ 睡眠()。 super.sleep(); } パブリック静的無効メイン(文字列[] args){ // TODO自動生成方法スタブ child.printname()。 child.testmethod(); } }
プログラムの出力:
父の名前は次のとおりです。チュチュ! 父は眠っています! 父は眠っています!
注意:
コンストラクタでは、我々は明示的にJavaが暗黙的に)(スーパー呼ぶ、親クラスを初期化するために、スーパー呼び出していない場合は、親クラスを呼び出し、引数なしのコンストラクタコンストラクタで最初にそれを置くために、Javaの唯一の暗黙の呼び出し引数なしのコンストラクタ親が引数なしのコンストラクタでない場合は、その後、サブクラスは、コールが親クラスを初期化するために、引数コンストラクタとなっている呼び出すためにsuperキーワードを示さなければなりません。
ブログの参照:https://blog.csdn.net/u012518665/article/details/80353225