多態、Object類和 JDK常用封裝類型
多態
定義:某一類事物的多種存在形態。
多態的體現:父類的引用指向了自己的子類對象。
父類的引用也可以接收自己的子類對象。
多態的前提:必須是類與類之間有關系,要麽繼承,要麽實現。通常還有一個前提,存在覆蓋。
多態的好處:多態的出現提高了程序的擴展性。
多態的弊端:只能使用父類的引用訪問父類中的成員。
轉型:
public class Animal {
public void eat(){
System.out.println();
}
}
public class Cat extends Animal{
public void eat(){
System.out.println("貓吃魚");
}
public void mouse(){
System.out.println("貓捉老鼠");
}
}
public static void main(String[] args) {
Animal c =new Cat();//向上轉型
Cat cat=(Cat)c;// 向下轉型,強轉//不能把父類對象轉換為子類類型。能轉換的是父類應用指向了自己的子類對象時,該應用可以被提升,也可以被強制轉換。多態自始至終都是子類對象做著變化。
cat.mouse();
eat(c);
}
public static void eat(Animal a){
a.eat();
}
}
多態成員
多態成員函數的特點:在編譯時期:參閱引用型變量所屬的類中是否有調用的方法,如果有,編譯通過,沒有,編譯失敗。在運行時期:參閱對象所屬的類中是否有調用的方法。
總結:成員函數在多態調用時,編譯看左邊,運行看右邊。
成員變量的特點:無論編譯與運行,都參考的左邊。
靜態成員函數的特點:編譯和運行,都參考左邊。
Object類
它是所有對象的間接父類;該類中定義的所有對象都具備的功能。無參構造:object()
equals()方法:java認為所有的對象都具備比較性,都能比較大小。
String str="328";
String str1="123";
System.out.println(str);[email protected]
System.out.println(str1);[email protected]
System.out.println(str.equals(str1));//地址完全相同則為true,反之flase equals(x==y返回true)
JDK常用封裝類型
Scanner類
可以通過Scanner類來獲取用戶的輸入。
初始化一個scanner對象Scanner scanner=new Scanner(System.in);
//獲取字符串String s=scanner.next();
//判斷語法boolean b=scanner.nextBoolean();//next後面的數據類型首字母大寫。
//關閉輸入對象scanner.close();
Java Number類
number數據類型:byte、integer、long、double、float、short。
//while(true){
String str=JOptionpane.ShowInputDialog("1111")////避免死循環
system.out.println();
}
String str=scan.nextlinr();// 可以輸入空格隔開的兩段字符
Integer in=new Integer("123556");//可以轉化為數字類型的字符串。
Integer與int區別:
Integer默認值為空(null),包裝類;
int默認值為0,是基本數據類型;
多態、Object類和 JDK常用封裝類型