KonjacのJavaエントリジャーニー-オブジェクトに直面する(補足)

1つ、組み合わせとニュース

1.組み合わせの
組み合わせとは、特定のクラスの他のクラスへの参照を定義することです。このようにして、異なるクラスのオブジェクトの組み合わせを実現します。組み合わせにより、異なるタイプのオブジェクト間でメソッドを再利用し、プログラミング効率を向上させることもできます。

2.組み合わせと継承
組み合わせと継承は、特定のクラスの他のクラスのメソッドまたはプロパティを呼び出すことにより、コードの再利用を実現できます。ただし、この2つの違いは、この組み合わせでは1つのクラスの他のクラスへの参照のみが定義され、他のクラスのすべてのデータを完全に継承することはできませんが、組み合わせによってプログラム構造の混乱を回避できることです。継承を使用する場合、それが悪用されると、コード構造に影響を与え、保守性を低下させ、セキュリティ上の問題を引き起こすことさえあります。一般に、継承は、他のクラスのほとんどのメンバーが必要な場合にのみ使用されます。それ以外の場合は、構成の方が適しています。
例えば:

package zz;
class Moven{
    
    
	Heven l;
	public Moven(Heven m) {
    
    
		
		if(l==null)
			System.out.println("this is Heven");
		else
			System.out.println("Heven has been changed");
	l=m;}
	public Moven() {
    
    
		// TODO Auto-generated constructor stub
	}
}

class Heven{
    
    
	Moven z;
	public Heven(Moven m) {
    
    
		
		if(z==null)
			System.out.println("this is Moven");
		else
			System.out.println("Moven has been changed");
	z=m;}
	public Heven() {
    
    
		// TODO Auto-generated constructor stub
	}
	
}
public class Test{
    
    
	public static void main(String[] args) {
    
    
		Moven a1=new Moven();
		Heven b1=new Heven();
		Moven a2=new Moven(b1);
		Heven b2=new Heven(a1);
	}
	
}

3.ランタイムポリモーフィズム
javaでは、ポリモーフィズムはランタイムポリモーフィズムとコンパイル時ポリモーフィズムに分けられます。Javaでのメソッドのオーバーロードはコンパイル時の多態性であり、メソッドのカバレッジは2つのタイプに分けられます。簡単に言えば、オブジェクトがこのクラスのインスタンスを参照する場合、それはコンパイル時の多態性です。それ以外の場合は、実行時の多型です。たとえば、親クラスがサブクラスインスタンスによって実装されたオーバーロードされたメソッドの呼び出しを参照する場合、呼び出される特定のメソッドをコンパイル時に決定することはできません。同じことがインターフェイス参照実装クラスにも当てはまります。
例えば:

package ht;
class AddClass1{
    
    
	public int a;
	public void prinA () {
    
    
		System.out.println("father's a="+a);
	}
	
}

public class SonAdd extends AddClass1{
    
    
	public int a=0;
	public void prinA (){
    
    
		System.out.println("son's a="+a);
	}
	
	public static void main(String[] args) {
    
    
		SonAdd p1=new SonAdd();
		AddClass1 p2=p1;
		p1.prinA();
		
	}
}

4.instanceof
instanceofは、Javaのバイナリ演算子であり、オブジェクトがクラスのインスタンスであるかどうかをテストするために使用されます。使用方法:obj instanceofClass。instanceofを使用する場合、objは基本タイプではなく、参照タイプである必要があることに注意してください。インスタンスの検出中に、オブジェクトがインターフェイスの実装クラスであるか、親クラスのサブクラスであるかを検出することもできます。

おすすめ

転載: blog.csdn.net/HiphopHarris/article/details/109276844