例外(Throwableの)処理と継承ExceptionクラスはThrowableクラスのサブクラスであるのmainメソッドThrowableクラスカスタム例外クラスはExceptionクラスから継承し、手動で新しい例外をスロー例外をスローJavaは多重継承をサポートしていない特性の継承:彼の息子を呼び出すために継承されたクラスをコンストラクタの順序の問題
例外処理(Throwableの)と継承
例外クラスは、クラスThrowableのサブクラスであります
クラスThrowableの主な方法
カスタム例外クラスは、例外が新しい例外をスロー手によってスローされ、Exceptionクラスから継承します
Javaは多重継承をサポートしていません。
継承の特徴:
- 親クラスが何のプライベートプロパティ、メソッドを持っていないサブクラスです。
- サブクラスは、サブクラスは親クラスを拡張することができ、自分の属性とメソッドを持つことができます。
- 親クラスが独自の方法で実装することができサブクラスです。
- Javaの単一継承は継承されますが、多重継承、単一継承では、サブクラスは、親クラスから継承することができるということです、多重継承はあるが、例えば、クラスがクラスBを継承し、クラスBは、クラスCを継承し、その関係は、クラスCであるBに従ったものです親クラスは、C ++、Javaが機能を継承異なるクラスBクラス、親クラスです。
- クラス間の結合向上させるために(継承された欠点を、それがより密接コード、悪化したコードの独立間の結合度の高い原因になります)。
サンズは、クラスのコンストラクタの順序の問題を呼び出す継承します
継承するサブクラスは、親クラスのコンストラクタ(コンストラクタまたはコンストラクター法)、それは単純に(暗黙的または明示的な)を呼び出すではありません。親クラスがある場合は、コンストラクタのパラメータが明示的にコンストラクタサブクラスでなければなりませんスーパー適切なパラメータで親クラスのコンストラクタとキーワードリストを呼び出します。
親クラスのコンストラクタのパラメータを使用しない場合は、コンストラクタサブクラススーパーキーワード親クラスのコンストラクタを呼び出して、システムが自動的に引数なしで親クラスのコンストラクタを呼び出します。
-
子类构造器自动调用父类构造器,先运行父类构造器的内容再运行子类构造器的内容。
-
父类带有参数的构造器通过super才能调用,否则自动调用父类无参构造器。
-
class SuperClass { private int n; SuperClass(){ System.out.println("SuperClass()"); } SuperClass(int n) { System.out.println("SuperClass(int n)"); this.n = n; } } // SubClass 类继承 class SubClass extends SuperClass{ private int n; SubClass(){ // 自动调用父类的无参数构造器 System.out.println("SubClass"); } public SubClass(int n){ super(300); // 调用父类中带有参数的构造器 System.out.println("SubClass(int n):"+n); this.n = n; } } // SubClass2 类继承 class SubClass2 extends SuperClass{ private int n; SubClass2(){ super(300); // 调用父类中带有参数的构造器 System.out.println("SubClass2"); } public SubClass2(int n){ // 自动调用父类的无参数构造器 System.out.println("SubClass2(int n):"+n); this.n = n; } } public class TestSuperSub{ public static void main (String args[]){ System.out.println("------SubClass 类继承------"); SubClass sc1 = new SubClass(); SubClass sc2 = new SubClass(100); System.out.println("------SubClass2 类继承------"); SubClass2 sc3 = new SubClass2(); SubClass2 sc4 = new SubClass2(200); } }
-
-
输出结果:
------SubClass 类继承------ SuperClass() SubClass SuperClass(int n) SubClass(int n):100 ------SubClass2 类继承------ SuperClass(int n) SubClass2 SuperClass() SubClass2(int n):200