java封裝和繼承多態一些簡答題及答案

2020-10-10 走進編程世界

簡答題

1、抽象類和接口的區別。

2、final和abstract關鍵字的作用。

3、面向對象的特徵有哪些方面。

4、訪問修飾符public,private,protected,以及不寫(默認)時的區別。

5、String 是最基本的數據類型嗎?

6、8種基本數據類型有哪些?

7、float f=3.4;是否正確?不正確的話,如何更正?

8、java對標識符命名有什麼規定?

9、方法的重載和方法的覆蓋有什麼不同?

10、簡述在類的繼承關係中,子類可以繼承父類的哪些成員,不能繼承的有哪些成員?


答案:

1、從本質上講,接口是一種特殊的抽象類,然而它們又有區別:

①接口只包含常量,而抽象類則不一定。

②接口中不能有非抽象的方法,但抽象類中可以有。

③一個類能實現多個接口,但只能有一個父類。

④接口並不屬於繼承結構,它實際與繼承無關,無關的類可以實現同一個接口。

---------------------------------------------------------------------------------------------------------------------------------------

2、final關鍵字

final(最終)是一個修飾符

1.final可以修飾類,函數,變量(成員變量,局部變量)

2.被final修飾後的類不可以被其他類繼承

3.被final修飾後的函數不可以被重寫

4.被final修飾後的變量不允許被再次賦值,final在對變量進行修飾時一定賦值,

被public final static多個修飾符修飾的的變量我們稱它為常量

注意:常量的命名規範:字母全部要大寫,

如果這個名字是由多個單詞組成,在單詞之間用——隔開

abstract關鍵字

abstract:是一個修飾符

可以修飾方法,類

當我們多個類存在相同的功能,但是功能的主體不同,這時我

進行向上抽取只抽取功能的定義不抽取功能的主體

抽象類的特點:

1.抽象方法一定要在抽象類中

2.抽象類和抽象方法必須要被abstract關鍵字修飾

3.抽象的類是不能被創建對象,因為調用抽象的方法沒意義

4.抽象類的中方法要被使用,必須由子類重寫抽象類中的方法。

然後創建子類對象來調用

5.抽象類中可以定義非抽象的方法,有時我們需要此類不能被new關鍵

字創建對象時,可以用abstract將此類變成抽象類。

6.子類如果只重寫一部分的抽象類方法,那麼該子類還是一個抽象類,

如果抽象類的方法要被使用,子類必須重寫抽象類中的所有方法。

值得注意:抽象類和普通的類沒有太大的不同。

1.抽象類無法通過new關鍵字創建對象

2.抽象類裡面可有抽象的方法

------------------------------------------------------------------------------------------------------------------------------------------

3、JAVA面向對象最重要的特徵就是:封裝,繼承,多態。

封裝是為了方便調用類庫裡面已經寫好的函數,繼承是方便對已有函數的功能進行直接調用和擴展。按照原則,java中已經寫好的 類庫會被打包成jar包,不允許調用者更改裡面的代碼。

但是你可以通過其中的抽象類或者接口,根據具體的業務邏輯進行功能的擴展。

多態的作用是,可以實現對繼承對象的統一調度,是面向對象的精髓所在。

另外,java還有語言簡單,面向對象,和平臺無關性。之所以java可以跨平臺,在於他可以通過java虛擬機JVM,將java代碼解釋成 該平臺能理解的語言

---------------------------------------------------------------------------------------------------------------------------------------------

4、作用域 當前類 同包 子類 其他

public √ √ √ √

protected √ √ √ ×

default √ √ × ×

private √ × × ×

類的成員不寫訪問修飾時默認為default。默認對於同一個包中的其他類相當於公開(public),對於不是同一個包中的其他類相當 於私有(private)。受保護(protected)對子類相當於公開,對不是同一包中的沒有父子關係的類相當於私有。

例子:應用場景

1、public:public表明該數據成員、成員函數是對所有用戶開放的,所有用戶都可以直接進行調用,在程序的任何其它地方訪問。

2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有財產神聖不可侵犯嘛,即便 是子女,朋友,都不可以使用。和public相反,加上這個修飾的屬性和方法,只允許在自己本身這個類裡訪問,程序的任何其它地 方都不能訪問 .

------------------------------------------------------------------------------------------------------------------------------------------------

5、基本數據類型包括byte、int、char、long、float、double、boolean和short。引用數據類型包括:類,數組,接口等(簡單來說就是除了 基本數據類型之外的所有類型)所以String 是引用數據類型

------------------------------------------------------------------------------------------------------------------------------------------------

6、byte、int、char、long、float、double、boolean和short

------------------------------------------------------------------------------------------------------------------------------------------------

7、不正確。精度不準確,應該用強制類型轉換,如下所示:float f=(float)3.4 或float f = 3.4f在java裡面,沒小數點的默認是int,有小 數點的默認是 double;

------------------------------------------------------------------------------------------------------------------------------------------------

8、答:Java對標識符的命名規定如下:

1) Java語言的標識符必須由字母、下劃線(「_」)或美元符號(「$」)開始,其餘字符可以是上述三種符號或數字(0-9)。

2) 關鍵字不能用於標識符如:abstract boolean 等等。

3) 標識符區分大小寫。

------------------------------------------------------------------------------------------------------------------------------------------------

9、方法重載,指的是在類中創建多個具有相同名稱,但使用不同參數的方法,Java虛擬機根據傳遞給方法的參數個數和類型決定調用哪個重 載方法。方法的覆蓋指在子類中重新定義父類中已有的方法,對於重寫的方法,運行時系統根據調用該方法的實例的類型來決定選 擇哪個方法調用。

------------------------------------------------------------------------------------------------------------------------------------------------

10、可繼承:①父類中公開級的成員;②父類中保護級的成員;③如果子類和父類在同一個包中,則子類繼承父類中預設的包訪問級的成員。

不可繼承:④父類中私有級的成員;⑤不在同一包的預設成員和父類的同名成員。

相關焦點

  • java中的封裝繼承和多態
    Java面向對象的編程思想引入了許多概念和機制歸納總結為四大點:抽象 ,封裝,繼承多態知識要點: 1 面向過程的設計思想 C語言就是面向過程的設計思想 (encapsulate) 多態(polymorphism) 繼承(inheritance) 2 抽象: 把客觀世界中真實存在的事物用程式語言描述出來 2.1了解對象:對象可以是一個事物也可以是一個概念,萬物皆對象,每一個對象都是唯一的,對象具有屬性和行為 3 封裝:3.1封裝:保護對象隱私 public
  • Java面向對象之:封裝、繼承、多態
    Java面向對象之:封裝、繼承、多態高內聚和低耦合面向對象的最終目的是要構建強健、安全、高效的項目,也就是要實現項目的高內聚和低耦合訪問權限修飾符應封裝的隱藏細節的理念,java提供了訪問權限修飾符來控制調用者的訪問權限,詳情如下:private:屬於類訪問權限,表示私有的,只能在當前類中訪問,使用private修飾的類、方法、欄位,在』離開當前類的作用域之後
  • Java 中的繼承和多態(深入版)
    面向對象的三大特性:封裝、繼承、多態。在這三個特性中,如果沒有封裝和繼承,也不會有多態。那麼多態實現的途徑和必要條件是什麼呢?以及多態中的重寫和重載在JVM中的表現是怎麼樣?在Java中是如何展現繼承的特性呢?對於子類繼承於父類時,又有什麼限制呢?
  • 在.NET中,C#舉例深度理解面向對象編程中的封裝、繼承和多態
    面向對象編程是將我們實際生活中的對象經過抽象,將它定義成為一個類,通過類的屬性和方法來模擬生活中的這個對象。這樣使得程序更容易結構化、抽象起來更方便,這是一種編程思想。面向對象的編程和3大特徵是:封裝、繼承、多態。也就是說只要我們編寫的程序當中使用了這3個特徵,那就是面向對象的編程。
  • 聊聊Java/Scala的繼承和多態
    繼承和多態是現代程式語言最為重要的概念。繼承和多態允許用戶將一些概念進行抽象,以達到代碼復用的目的。本文用一些例子快速回顧一下Java/Scala的繼承和多態。圖中,每個動物都有一些基本屬性:名字(name)和描述(description),有一些基本方法:getName()和eat(),這些基本功能共同組成了Animal類。在這個類基礎上,我們可以衍生出各種各樣的子類、子類的子類等。比如,Dog類有自己的dogData屬性和bark()方法,同時也可以使用父類的name等屬性和eat()方法。
  • Java面向對象三大特性以及Java多態
    是同一個對象的引用時返回true,否則返回falseJDK提供的一些類,如String,Integer,Date等,都已經重寫了Object的equals方法,調用這些類的equals方法,x.equals(y),當x和y所引用的對象是同一類對象且屬性內容相等時(並不一定是相同對象),返回true否則返回false.
  • 樂字節Java面向對象三大特性以及Java多態
    是同一個對象的引用時返回true,否則返回falseJDK提供的一些類,如String,Integer,Date等,都已經重寫了Object的equals方法,調用這些類的equals方法,x.equals(y),當x和y所引用的對象是同一類對象且屬性內容相等時(並不一定是相同對象),返回true否則返回false.
  • Python面向對象(封裝、繼承、多態)詳解
    面向對象的三大特徵:封裝、繼承、多態封裝私信小編01即可獲取Python學習資料概念:將一個對象的數據隱藏在對象內部,不讓在外界直接訪問,而是通過對象提供的方法來訪問這些隱藏起來的數據,這樣就可以在訪問方法中添加訪問條件限制,目的是對數據的有效組織和數據安全性的保護通俗理解:就是一個東西是自己的,不讓外人直接拿到,而是通過向自己借東西的行為來判斷是否可以借給他人屬性私有化封裝約定私有化:加一個下劃線在規範上約定不能直接訪問語法私有化:加兩個下劃線在語法上不能通過屬性名稱直接訪問
  • Java面向對象之:接口、多態
    Java中的接口是 一系列方法的聲明 ,是一些 方法特徵的集合 。構造方法和成員方法,那麼接口的內部主要就是 封裝了方法,包含抽象方法(JDK 7及以前),默認方法和靜態方法(JDK 8)。類和接口都是java代碼,都會轉換為字節碼文件public class 類名.java → 類名.classpublic interface 接口名.java → 接口名.class1.2-接口的定義格式
  • C++面向對象繼承與多態
    前言這一篇開始正式展開講多態,以及我們為什麼要使用多態。在面向對象語言中,接口的多種不同的實現方式即為多態。引用Charlie Calverts對多態的描述——多態性是允許你將父對象設置成為一個或更多的他的子對象相等的技術,賦值之後,父對象就可以根據當前賦值給它的子對象的特性以不同的方式運作(摘自「Delphi4 編程技術內幕」)。簡單的說,就是一句話:允許將子類類型的指針賦值給父類類型的指針。
  • C#面向對象特性,封裝繼承多態。知道但為什麼寫不出那樣的代碼
    面向對象的特性:封裝、繼承、多態。本文是假設各位讀者很懂很知道這些特性的情況下來寫的,所以,關於封裝、繼承、多態的概念定義,您若不清楚,可以查找相關資料。本文針對老手,而非小白。答案是,您必須時刻使用您的面向對象思想武裝自己,思考自己寫的每一行代碼,是否足夠優秀,是否正常,是否應該出現在這裡。你要有一種代碼藝術感,和追求完美的標準。2.訓練實踐是最好的學習手段。
  • 淺析java繼承與多態,抽象類與接口的區別
    面向對象的設計可以更好的解決系統維護、擴展、和代碼重用的需求,代碼過多後過程式的邏輯組織會變得異常複雜,所以就發展出了面向對象式編程。而面向對象的基本特性就是封裝、繼承、與多態。一、繼承extends 關鍵字表示繼承某個已存在的類,已存在的類稱為「超類」、「基類」、或「父類」,而新繼承的類稱為「子類」、「派生類」。
  • Java基礎系列:理解Java多態的實現機制
    多數Java程式設計師是多態看作對象的一種能力,使其能調用正確的方法版本。儘管如此,這種面向實現的觀點導致了多態的神奇功能,勝於僅僅把多態看成純粹的概念。Java中的多態總是子類型的多態。幾乎是機械式產生了一些多態的行為,使我們不去考慮其中涉及的類型問題。
  • 抽象、繼承、多態可以解決哪些編程問題
    所以,我們把 balanceLastModifiedTime 這個屬性的修改操作完全封裝在了increaseBalance() 和 decreaseBalance() 兩個方法中,不對外暴露任何修改這個屬性的方法和業務細節。這樣也可以保證 balance 和 balanceLastModifiedTime 兩個數據的一致性。
  • java 面向對象概述
    在java中經常提到的兩個詞是類與對象,實質上可以將類看作是對象的載體,它定義了對象所具有的功能,學習java語言必須掌握類與對象,這樣可從深層次去理解java這種面向對象語言的開發理念。例如,用戶使用計算機時,只需要用手敲擊鍵盤就能實現一些功能,無需知道計算機內部是如何實現的,這就體現了封裝的特點。
  • JAVA學習路線(含知識點)
    一、JAVA基礎1.1JAVA的特點和三大特性封裝:封裝是將一個對象特有的行為和動作封裝成一個特定的對象中,該對象可以向外界提供特有的屬性和方法(public,protect),也可以自己對象私有的屬性和方法(private)繼承:
  • Java面試之基礎問題答案口述整理
    Java語言是一種面向對象的語言,包含了三大基本特徵,即封裝、繼承和多態。封裝就是把一個對象的屬性私有化,對於需要訪問的屬性提供一些可以被外界訪問的公共方法。採用private關鍵字來完成封裝操作,被private關鍵字修飾的的成員變量和成員方法,只能在本類中訪問。適當的封裝可以讓代碼更容易理解和維護,也加強了代碼的安全性。繼承就是子類繼承父類的屬性和行為,使得子類對象具有與父類相同的屬性和行為。
  • 19道java經典面試題(附答案)
    3.java 創建對象的方式採用new通過反射採用clone13.Get/Post對緩存的影響此題其實是問瀏覽器緩存對於HTTP Method中Get和Post的請求是否支持,答案是不支持Post Method。Get可以被瀏覽器緩存。
  • Java中多態的運用及注意
    首先了解下java中的綁定.java中有靜態綁定和動態綁定,也叫前期綁定和後期綁定.除了final(private 也算final),static,構造函數才是靜態綁定. 1.java多態demo: 只有運行時才知道該調用哪個方法.
  • 你真的熟悉Java中的繼承與多態?給你幾分鐘能回答上來?
    繼承1.介紹多個類中存在相同屬性和行為時,將這些內容抽取到單獨一個類中,那麼多個類無需再定義這些屬性和行為,只要繼承那個類即可。此處的多個類稱為子類(此類,派生類,拓展類),單獨的這個類稱為父類(基類 ,超類)。可以理解為:「子類 is a 父類」。