親のp = 新しい子供();
パブリック クラスがテスト{ 公共 静的 ボイドメイン(文字列[]引数){ ショーが(新しい新しい猫()); // メソッドを呼び出すために猫のオブジェクトを表示するように 表示を(新しい新しい犬()); // 犬オブジェクトメソッドを呼び出して表示するために 動物Aが = 新しい新しい猫(); // アップキャスト a.eat(); // 呼び出しは猫EATある ;カタログC =(CAT) // 下方遷移 c.workを(); // 呼び出しは、猫の作品 } パブリック 静的 ボイド表示(動物A){ a.eat(); // 判定型 IF(instanceofの CAT){ // ネコ行う 猫C = ;(CAT)A c.work()を; } そう IF(instanceofの犬){ // 犬がやっ物事 犬C = (イヌ); c.work(); } } } 抽象 クラス動物{ 抽象 ボイド(EAT); } クラスキャットザが延びる動物{ 公共 ボイドEAT(){ System.out.println( "FISH" ); } 公共 ボイドワーク(){ System.out.printlnは( "及びマウス" ); } } クラス犬延び動物を{ 公共 ボイド{)(EAT (のSystem.out.printlnを "骨を食べる" ); } 公共 ボイドワーク(){ System.out.printlnは( "ハウスキーピング" ); } }
パブリック クラス従業員{ プライベート文字列名; プライベート文字列のアドレス。 プライベート int型の数。 公共の従業員(文字列名、文字列アドレス、INTの数){ するSystem.out.println( "従業員构造函数" )。 この .nameの= 名前; この .address = アドレス。 この .NUMBER = 数; } 公共 ボイドMAILCHECK(){ System.out.printlnは( "邮寄支票给:" + この.nameの + "" + この。住所); } パブリック文字列のtoString(){ 戻り名+ "" +アドレス+ "" + 数。 } パブリック文字列のgetName(){ 戻り名。 } パブリック文字列のgetAddress(){ リターンアドレス。 } 公共 ボイドsetAddress(文字列newAddress){ アドレス = newAddress。 } 公共 INT はgetNumber(){ 戻り番号; } }
パブリック クラスは、給与のインクルードは、拡張し、従業員 { プライベート ダブル給料を; // 年俸 公共給与(文字列名、文字列のアドレス、int型の数、ダブル給料){ スーパー(名前、住所、番号); setSalary(給与); } パブリック 無効MAILCHECK( ){ のSystem.out.println( "給与MAILCHECKクラスメソッド" ) のSystem.out.println( "への配信をチェック:" + のgetName() + "賃金:" + 給与); } 公共 ダブルgetSalary(){ 戻り給与。 } 公共 ボイド setSalary(ダブルnewSalary){ 場合(newSalary> = 0.0 ){ 給与 = newSalary。 } } 公共 ダブルcomputePay(){ System.out.printlnは( "计算工资、付给:" + のgetName())。 返す給与/ 52 ; } }
パブリック クラスVirtualDemo { 公共 静的 ボイドメイン(文字列[]引数){ 給与S = 新しい新給与(「従業員A」、「北京」,. 3、3600.00 ); 従業員E = 新しい新給与(「社員B」、「上海」、 2、2400.00 ) のSystem.out.println( "MAILCHECKを使用して給与呼番号- " ); s.mailCheck(); のSystem.out.println( "従業員mailCheck--を使用して\ N-基準コール" ); E .mailCheck(); } }