1. 程式人生 > >Java入門記(二):向上轉型與向下轉型

Java入門記(二):向上轉型與向下轉型

interface CanFight {
    void fight();
}
interface CanSwim {
    void swim();
}
interface CanFly {
    void fly();
}

class ActionCharacter {
    public void fight() {}
}

class Hero extends ActionCharacter implements CanFight, CanSwim, CanFly {
    public void swim() {}
    public void
fly() {} } public class Adventure { static void t(CanFight x) { x.fight(); } static void u(CanSwim x) { x.swim(); } static void v(CanFly x) { x.fly(); } static void w(ActionCharacter x) { x.fight(); } public static void main(String[] args) { Hero i = new Hero(); t(i);
// Treat it as a CanFight u(i); // Treat it as a CanSwim v(i); // Treat it as a CanFly w(i); // Treat it as an ActionCharacter } }

相關推薦

Java入門()向上轉型轉型

interface CanFight { void fight(); } interface CanSwim { void swim(); } interface CanFly { void fly(); } class ActionCharacter {

Java SE之向上轉型轉型

args color 繼續 生活費 div 重新 rgs ror new package object; //向上轉型-向下轉型 public class Up_Down_convert { /* 向上轉型 * * 1.上轉型對象

java 向上轉型轉型

上轉型 post ets public pan lar getname clas () 向上轉型:子類轉父類 Father father1= new Son(); 向下轉型:父類轉子類 Son son = (Son)new Father (); // 這樣是運行

java向上轉型轉型

向上轉型   class father { public void eat(){ System.out.println("father eat()"); } } class son extends father { public void sleep(){ System.

Java面向物件之多型(向上轉型轉型

多型,大概每個人都知道。但是,又有幾個人真的理解什麼是多型、多型有哪些細節呢?如果你看到這篇文章的名字,腦海中對多型沒有一個清晰的概念,不妨點進來看看,也許會有收穫。 什麼是多型 簡單的理解多型 多型,簡而言之就是同一個行為具有多個不同表現形式或形態的能力。比如說,有一杯水,我不知道

Java多型——向上轉型轉型

Java的轉型之前一直處於似是而非的狀態。 其中尤其是向上轉型,大概意思誰不懂啊,A  a  =  new  B()  嘛,然而往細了摳就有點矇蔽,尤其是面對考卷裡出現的那種賊JB噁心的多型題,簡直要哭了。 翻閱了幾篇大佬們寫的部落格,整理一下思路總結如下。 首先先從

Java向上轉型轉型(子類的物件賦給父類的)

一.定義:    通俗理解向上轉型:    就是子類轉型成父類。   classA   {   }   classBextendsA   {   }   A b=new B();   這個就是向上轉型。   向上轉型可以像下面這條語句這麼簡單:   Shape s =new Circle();   這裡,建

Java多型,向上轉型轉型

**多型意味著一個物件有著多重特徵,可以在特定情況下,表現出不同的狀態,從而對應不同的屬性和方法。 ** 具體來說就是指在繼承過程中父類和子類中可以有多個同名但意義或者實現方式不同的屬性或方法,也就是過載和覆蓋。在實際應用中,還有兩種特殊情形:向上轉型和向下轉型。 父類 public

Java中的向上轉型轉型

    Java中的類的繼承關係中,有向上轉型與向下轉型兩種。    當父類的引用指向子類物件時,稱為向上轉型。比如Father是父類,Son是子類,則Father father=new Son()這種就是向上轉型;這個時候執行的是指向的子類物件的方法。如下 publi

重新精讀《Java 程式設計思想》系列之向上轉型轉型

前言 今天重讀了一下向上轉型與向下轉型,有些新的體會,瞭解了向上轉型的好處,及如何向下轉型。在此分享給大家。 向上轉型 向上轉型是用來表現新類和基類之間的關係。在傳統中,由匯出類轉型成基類,在繼承圖中是向上移動的。因此稱作向上轉型。由於向上轉型是從一個較專用型別向較通用型別轉換,所以總是安全的。也就是說,匯出

關於向上轉型轉型的一點個人見解

正是大四實習期間,看李興華老師的Java教學視訊再打打基礎時,就遇見向上轉型與向下轉型的問題,向上轉型倒是通過視訊看懂了,向下轉型那一段看了好多遍都沒懂,上網查資料,也大多一語帶過,最後看了《Java程式設計思想》才稍明白了,好了,廢話少說。 向下

Java入門(四)容器關係的梳理(上)——Collection

      目錄 三、Set   Java.util中的容器又被稱為Java Collections framework。雖然被稱為框架,但是其主要目的是提供一組介面儘量簡單而且相同、並且儘量高效、以便於開發人員按照場景選用,而不

Java入門(三)初始化順序

初始化順序的規則 1.在一個類的物件例項化時,成員變數首先初始化,然後才呼叫構造器,無論書寫順序。如果呼叫構造器前,沒有顯式初始化,那麼會賦預設值。 這樣做法的原因可以理解為:構造器執行時可能會用到一些成員變數的初值。 2.static變數早於所有其他的類成員變數初始化,同樣無論書寫順序。但是stati

Java入門(五)容器關係的梳理()——Map

注意:閱讀本文及相關原始碼時,需要資料結構相關知識,包括:雜湊表、連結串列、紅黑樹。   Map是將鍵(key)對映到值(value)的物件。不同的對映不能包含相同的鍵;每個鍵最多隻能對映到一個值。下圖是常見Map的介面和實現。與Collection相比,繼承關係簡單不少。 一、Map介面和Abs

Java入門(一)折騰HelloWorld

  HelloWorld,學習每門語言的第一步。有人戲稱,這些年的程式設計生涯就是學習各種語言的HelloWorld,不知是自謙還是自嘲。目前所在的公司使用Java作為主要開發語言,我進行語言轉換也大半年了,這HelloWorld便是語言轉換的第一關。好在本科的時候學過那麼一點,而且在此之前進行了較長時間的C

JavaSE(五)JAVA對象向上轉型轉型

open 其他 解釋 編譯 -- 運行出錯 instance xtend args 今天做了一個測試的題目,發現自己還是很多問題沒有靜下心來做。很多問題是可以自己解決的但是自己一是沒有讀清題意,二是自己心裏太急躁了。所以這個要自己應以為鑒! 對象的轉型問題其實並不復雜,我

JAVA向上轉型轉型

子類 font new ont java向上轉型 clas 之間 string output   最近在看JAVA編程思想,之前學的JAVA只能算是皮毛,大概看到第七章繼承時出現了個名詞-向上轉型。所以就來討論下向上和向下轉型的內容和意義,內容會隨著我看書的進度一直更新的

JAVA向上轉型轉型

向上轉型 是面向物件繼承的一種形式,是指子類物件轉換為父類物件。 看下面的example class Instrument { public void play() { System.out.println("Instrument play"); }

java——向上轉型轉型

Father f1 = new Son(); // 這就叫 upcasting (向上轉型) // 現在 f1 引用指向一個Son物件 Son s1 = (Son)f1; // 這就叫 downcasting (向下轉型) // 現在f1 還是指向 Son物件 Father f2 =

java語言機制中的多型多型理解以及多型的向上轉型轉型問題

多型中轉型問題往往不容易理解,特別是向上和向下轉型。 下面先說說多型的概念和前提: 1.要有繼承關係; 2.要有方法重寫; 3.要有父類引用指向子類物件; 如果是成員變數的話,編譯看左邊(父類),執行看左邊(子類); 如果是成員方法的話,編譯看左邊(父類),執行看右邊(子類)