final修飾變數:
}final修飾類:如果乙個類被final修飾,那麼這個類就不可以被繼承。
final修飾方法:
(1)如果乙個方法被final修飾,那麼子類不可以重寫這個方法
(2)雖然子類不能重寫了,但是呼叫都是可以的!
檢視原始碼:math類:
(1)final修飾屬性:這個值不讓其他人更改
(2)final修飾方法:不能被重寫
(3)final修飾類:不能被繼承
(4)發現math中的構造器被private修飾了:
所以math m=new math();這個話 出錯!
那麼我們想要呼叫裡面的屬性和方法怎麼呼叫:
發現所有的屬性和方法前都加了static修飾:我可以通過類名。屬性名或者類名。方法名去呼叫。
為什麼需要抽象類? 如何定義抽象類?
是一種模版模式。
抽象類為所有子類提供了乙個通用模版,子類可以在這個模版基礎上進行擴充套件。
通過抽象類,可以避免子類設計的隨意性。通過抽象類,我們就可以做到嚴格限制子類的設計,使子類之間更加通用。
package com.bjsxt.test03;
//3.只要類中有抽象方法,這個類就變成乙個抽象類。
//4.那麼抽象類中可以有0,1,2,,,,,n個抽象方法,
public abstract class person
//2.在乙個類中,還有一部分方法,無論怎麼寫子類都不滿意,都要對它進行重寫。
//2.對於這樣的方法,方法體就沒有必要再寫了
//2.假如乙個方法沒有方法體,只有方法的宣告,那麼這個方法就變成了乙個抽象方法
public abstract void say();
public abstract void sleep();
}//5.抽象類可以被繼承嗎?可以的,必須重寫全部的抽象方法。
//6.假如子類沒有重寫全部的抽象方法,那麼這個類也可以變為乙個抽象類。
class student extends person
@override
public void sleep()
}class test
}
面試題:
(1)抽象類不能建立物件,那麼抽象類中是否有構造器?
必須有構造器,因為這個構造器不是給抽象類用的,而是給子類建立物件的時候呼叫的。
(2)抽象類可否被final修飾?
不可以的
final修飾不能被子類繼承,但是抽象類就是給子類定義模板的。
final修飾的Map集合可以被修改
例 final string s aaa final map map new hashmap s bbb map.put aa 111 結果是s報錯,map成功執行。fianl的特性是 final修飾的類不能被繼承 final就是的方法不能被重寫,可以被過載。final修飾的變數不可修改。到這裡是沒...
自增列可以手動修改嗎
自增列可以手動修改嗎?當然可以了 set identity insert 允許將顯式值插入表的標識列中。語法set identity insert database.owner.引數database 是指定的表所駐留的資料庫名稱。owner 是表所有者的名稱。table 是含有標識列的表名。注釋任何...
如何做到遊戲雙開 修改程序名可以嗎
如何做到遊戲雙開?修改程序名可以嗎?delphi windows sdk api 有的遊戲不允許執行多個.有沒有辦法可以實現多開?修改程序名可以嗎?高手指點下,最好有 呵呵 不行要看遊戲是怎麼實現不允許多個同時執行的了 如果只是簡單的findwindow查詢視窗控制代碼或查詢程序,當然可以實現,不過...