ホームページ  >  記事  >  Java  >  Javaの基礎を取り戻す(8):継承とポリペプチドのまとめ

Javaの基礎を取り戻す(8):継承とポリペプチドのまとめ

黄舟
黄舟オリジナル
2017-01-16 09:38:012346ブラウズ

Javaの基礎を取り戻す(8): 継承とポリペプチドのまとめ

1. 継承

1、在java编程中会遇到两个或者多个类中存在多个代码重复,这时我们就需要在这     
两个或多个类中寻找他们的共同特点,然后寻找一个大的类别来包括,他们的共      
同属性和方法,这样就出现了继承。 
2、我们大类别叫做“超类”或者“基类”不过通俗叫法我们叫做“父类”,小类别叫    做“子类”. 
3、小类别继承大类别内非私有的成员。      
注意:a、 私有的属性可以通过set/get方法来实现对其的使用,但这不属于继承。            
b、构造函数无法继承,因为构造函数的函数名要与父类的函数名保持                
一致, 如果继承下来语法不符。            
c、个人觉得 父类的私有函数虽然无法继承,不过可以利用父类中的                
非私有函数进行调用。 
4、java中的继承是单继承  不能写成  class Son extends Father , GrandFather    
但是可以是多层继承    
例如:class Father extends GrangFather                                 
class Son extends Father 
5、继承要满足is-a关系     老师是人   不能 人是老师 也不能   dog is a person 
6、继承要使用  extends 关键字

2. サブクラスは親クラスから何を継承しますか?親クラスのプライベートメンバー。 2. 非継承メソッド: コンストラクターは継承できません。 プライベート メソッドは継承できません。 3. 継承可能なメソッド 非プライベート メソッド。 4. 非プライベート メソッドは継承できます。 プライベート プロパティは継承できませんが、set/get メソッドで使用できます。 5. プライベートプロパティのサブクラスには継承権はありませんが、使用権があります 6. サブクラスは独自の属性とメソッドを持つことができます


3. サブクラスオブジェクト作成時のメモリ割り当て図

Javaの基礎を取り戻す(8):継承とポリペプチドのまとめ 4. 継承関係のメソッド

1. 親クラスはプライベートではありません。構築メソッドを除くメソッドは、サブクラスに継承できます

2. サブクラスが親クラスのメソッドを使用したくない場合は、メソッドをオーバーライドすることもできます。

3. メソッドの書き換え

A. メソッドの書き換えでは、メソッド名、パラメーターの型、順序、番号が完全に同じであることを確認する必要があります

B. メソッドの書き換えでは、戻り値の型がメソッドの型と同じであることを確認する必要がありますその親クラスまたはその子の種類。

C. メソッドの書き換えでは、修飾子がその親の型と同じであるか、親クラスよりも大きな権限を持っていることを確認する必要があります。 間違いを犯さずに、メソッドの書き換えを親クラスと完全に一致させることが最善です


5. スーパー キーワード

1. スーパー キーワードは、サブクラス ヒープに親クラスのスペースがあることを示します

2. スーパー キーワード親クラスの非プライベート メンバーの呼び出し

A、非プライベート プロパティ super.property 名

B、非プライベート関数 super.function 名

C、コンストラクター メソッド

のみを呼び出すことができます。サブクラス内の親クラスのコンストラクター メソッド

super() パラメーターなしの構築メソッド

super (実際のパラメーター) パラメーター化された構築メソッド

3. サブクラスの構築メソッドに親クラスのプライベート プロパティを代入する

A. setメソッド

B. 親クラスをスーパーコールします 構築メソッド (パラメーター付き)


6. すべてのクラスの祖先: Object

すべてのクラスの最上位の親クラス すべてのクラスは自動的に Object クラスを継承します


7.ポリモーフィズム

1. ポリペプチドを保証できる プログラムの拡張性と保守性 2. ポリペプチドによりコードの重複を削減できる 3. is-a文に従う


8. 上方変換

1. 親クラス名オブジェクト名 = 新しいサブクラス名() ;

2. 機能: アクティブなメソッドのパラメータはパッシブな親クラスの型を使用する必要があり、実際のパラメータは仮パラメータに渡されます。

3. ポリペプチドを実装する手順

A. パッシブ側には継承関係が必要です

B. サブクラスは親クラスの関数メソッドをオーバーライドする必要があります

C. アクティブ側のメソッドのパラメーターの型は次のとおりである必要がありますパッシブな親タイプに設定されます。

4. たとえば、Father f=new Son();//ポリペプチド宣言

f.eat();//ここで実行されるのはサブクラスのeat関数です


Javaの基礎を取り戻す(8):継承とポリペプチドのまとめ

注: プリンターは親クラス、BlackPrinter はサブクラスです。アクティブな関数で親クラスを定義し、テスト クラスでサブクラス オブジェクトを渡します。注: パラメーターもサブクラス オブジェクトに渡される場合、上記のサブクラスはスーパーを使用して親クラスのパラメーター化されたコンストラクターを呼び出す必要があります。 コンストラクターは継承されないためです。


9. 下方変換

1. 上方変換ではサブクラス関数の独自メソッドを呼び出すことができないので、下方変換を使用します

2. 図のように

親クラス名 = new サブクラス名 () ;

; ; = (サブカテゴリ名) オブジェクト名;

の変数名。

には強制的な型変換が必要です。

3. 上方変換のデメリットを解決する。


10. ポリモーフィズムの詳細

1. 非プライベート属性の場合、親クラスとサブクラスの両方に同じ名前の属性がある場合、上方変換を行うと親クラスの属性が呼び出されます。 コンパイルと操作は左(親クラス)を見てください。

2. 非プライベートメソッドの場合、親クラスとサブクラスの両方に同名の関数(メソッド書き換え)がある場合、上方変換時にサブクラスのメソッドが呼び出されます。 コンパイル時は左側 (親クラス) を確認し、実行時は右側 (サブクラス) を確認します。これは、ポリペプチドでは、サブクラスが親クラスのメソッドをオーバーライドまたは継承する必要があることを説明しています。存在しないためコンパイルできないため、下向きに入力してください。 ! ! !

上記は、Java の基本を取り戻す (8): 継承とポリペプチドの概要の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。