1. 程式人生 > >5.4-全棧Java筆記:面向對象進階之對象的轉型 | FINAL關鍵字 |抽象方法和抽象類

5.4-全棧Java筆記:面向對象進階之對象的轉型 | FINAL關鍵字 |抽象方法和抽象類

java

對象的轉型(casting)

引用變量只能調用它編譯類型的方法,不能調用它運行類型的方法。這時,我們就需要進行類型的強制轉換!

【示例1】對象的轉型

public class TestCasting {

public static void main(String[] args) {

Object obj = new String("北京"); //向上可以自動轉型

//obj.charAt(0) //無法調用。編譯器認為objObject類型而不是String類型

String str = (String) obj; //編寫程序時,如果想調用運行時類型的方法,只能進行強制類型轉換。不然通不過編譯器的檢查。

System.out.println(str.charAt(0)); //位於0索引位置的字符

System.out.println(obj==str); //true.他們兩運行時是同一個對象

}

}

final關鍵字

final關鍵字的作用:

1.修飾變量: 被他修飾的變量不可改變。一旦賦了初值,就不能被重新賦值。

final int MAX_SPEED = 120;

2.修飾方法:該方法不可被子類重寫。但是可以被重載!

final void study(){}

3.修飾類: 修飾的類不能有子類,不能被繼承。比如:MathString

final class A {}

抽象方法和抽象類

抽象方法

使用abstract修飾的方法,沒有方法體,只有聲明。定義的是一種規範,就是告訴子類必須要給抽象方法提供具體的實現。

象類

包含抽象方法的類就是抽象類。通過abstract方法定義規範,然後要求子類必須定義具體實現。通過抽象類,我們就可以做到嚴格限制子類的設計,使子類之間更加通用。

【示例2】抽象類的基本用法

//測試抽象類

public class TestAbstractClass {

public static void main(String[] args) {

Dog a = new Dog();

a.shout();

a.seeDoor();

}

}

//抽象類

abstract class Animal {

abstract public void shout(); //抽象方法

}

class Dog extends Animal {

public void shout() {

System.out.println("旺旺旺!");

}

public void seeDoor(){

System.out.println("看門中....");

}

}

抽象類的使用要點:

1. 有抽象方法的類只能定義能抽象類

2. 抽象類不能實例化,即不能用new來實例化抽象類。

3. 抽象類可以包含屬性、方法、構造方法。但是構造方法不能用來new實例,只能用來被子類調用。

4. 抽象類只能用來繼承。

5. 抽象方法必須被子類實現。





「全棧Java筆記」是一部能幫大家從零到一成長為全棧Java工程師系列筆記。筆者江湖人稱 Mr. G,10年Java研發經驗,曾在神州數碼、航天院某所研發中心從事軟件設計及研發工作,從小白逐漸做到工程師、高級工程師、架構師。精通Java平臺軟件開發,精通JAVAEE,熟悉各種流行開發框架。


筆記包含從淺入深的六大部分:

A-Java入門階段

B-數據庫從入門到精通

C-手刃移動前端和Web前端

D-J2EE從了解到實戰

E-Java高級框架精解

F-Linux和Hadoop



本文出自 “12931675” 博客,請務必保留此出處http://12941675.blog.51cto.com/12931675/1942985

5.4-全棧Java筆記:面向對象進階之對象的轉型 | FINAL關鍵字 |抽象方法和抽象類