java 多态判断非空_Java 多态
父類的屬性變量(例如變量 int a)可以被繼承,同時在子類中也會同時繼承該變量(super.int a,繼承的變量),子類中也可以再次聲明一個同名(可以同類型)的變量(double a,自己聲明的同名變量),兩者可以同時存在。在輸出時候根據對象的引用名輸出,例如:
class Animal{
public int age; //此處在Animal中定義類型為int,名為age的變量。
public void move(){
System.out.println("動物總是不安分");
}
}
class Dog extends Animal{
public double age; //此處在Dog中定義新類型double,名為age的變量。當然int嘗試也可以。
public void move(){
age =10;
System.out.println("狗跑的很快");
}
}
class Cat extends Animal{
public void move(){
super.age = 3; //此處繼承age,并賦值為3.且該類中未重新定義變量。
System.out.println("貓跳的很高");
}
}
public class DuiXiang03{
public static void main(String args[]){
Animal a = new Animal(); // Animal 對象
Animal b = new Dog(); // Dog 對象
Animal c =new Cat(); //Cat 對象
Dog d= new Dog();
Cat e= new Cat();
a.move();//執行 Animal 類的方法
b.move();//執行 Dog 類的方法
c.move();//執行 Cat 類的方法
d.move();//執行Dog 類的方法
e.move();//執行 Cat 類的方法
Object aValue = a.age;
Object bValue = b.age; // b.age有兩個age值,一個是自定義的age值,一個是繼承的age值
Object cValue = c.age;
Object dValue = d.age; // d.age有兩個age值,一個是自定義的age值,一個是繼承的age值
Object eValue =e.age;
System.out.println("The type of "+a.age+" is "+(aValue instanceof Double ? "double" : (aValue instanceof Integer ? "int" : ""))); // Animal 類中的 age 未被賦值
System.out.println("The type of "+b.age+" is "+(bValue instanceof Double ? "double" : (bValue instanceof Integer ? "int" : ""))); // b.age有兩個age值,輸出取引用名為Animal的int類型值
System.out.println("The type of "+c.age+" is "+(cValue instanceof Double ? "double" : (cValue instanceof Integer ? "int" : ""))); // c.age只有一個age值,是super所繼承的Animal中的age值,再被賦值為3
System.out.println("The type of "+d.age+" is "+(dValue instanceof Double ? "double" : (dValue instanceof Integer ? "int" : ""))); // d.age有兩個age值,輸出取引用名為Dog的double類型值
System.out.println("The type of "+e.age+" is "+(eValue instanceof Double ? "double" : (eValue instanceof Integer ? "int" : ""))); // c.age只有一個age值,是super所繼承的Animal中的age值,再被賦值為3
}
}
輸出的結果為:
動物總是不安分
狗跑的很快
貓跳的很高
狗跑的很快
貓跳的很高
The type of 0 is int
The type of 0 is int
The type of 3 is int
The type of 10.0 is double
The type of 3 is int
我是小萌新
我是小萌新
239***9370@qq.com2年前 (2018-08-30)
總結
以上是生活随笔為你收集整理的java 多态判断非空_Java 多态的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JVM003_属性表
- 下一篇: Java8————Lambda表达式(一