淺談Java封裝、繼承、多態(tài)特性
1.封裝
什么是封裝,談?wù)勛约簩?duì)封裝的理解,封裝就是將類的信息(比如說(shuō)類的屬性)隱藏在類的內(nèi)部,不允許外部程序直接訪問(wèn)。此時(shí)就要提到一個(gè)關(guān)鍵字private,他是一個(gè)權(quán)限修飾符,可以用來(lái)修飾成員(變量和方法),保護(hù)成員不被其他別的類來(lái)使用,如果需要被其他類來(lái)使用,那么需要提供對(duì)應(yīng)的操作:a.提供get變量名()方法,用于獲取成員變量的值 b.提供set變量名(參數(shù)),用于設(shè)置成員變量的值,同樣也和get方法一樣,都是用public來(lái)修飾(同時(shí)切記變量名的首字母一定大寫(xiě))。
2.繼承
什么是繼承,談?wù)勛约簩?duì)繼承的理解,繼承是類與類之間的一直關(guān)系,類似于數(shù)學(xué)集合之中包含與被包含之間的關(guān)系,比如大學(xué)生屬于學(xué)生,那么可以看成是大學(xué)生類 繼承了學(xué)生類,那么大學(xué)生類就是學(xué)生類的子類(派生類),學(xué)生類是大學(xué)生類的父類(基類),同時(shí)要值得注意的是Java中的繼承是單繼承(多層次繼承),多實(shí)現(xiàn)(接口),(理解成一個(gè)類不可能有兩個(gè)爹,但是兒子可以繼承父親,父親可以繼承爺爺這種多層次)
格式:public class 子類名 extends 父類名{}
舉例:public class zi extends fu{}
3.多態(tài)
什么是多態(tài),封裝和繼承幾乎都是為多態(tài)而準(zhǔn)備的,多態(tài)我個(gè)人理解成是java程序在運(yùn)行中使用繼承時(shí)的一種關(guān)系,比如方法重寫(xiě),繼承是多態(tài)的實(shí)現(xiàn)基礎(chǔ),
舉例:我們可以說(shuō)大學(xué)生是大學(xué)生:大學(xué)生? unst=new 大學(xué)生();
我們也可以說(shuō)大學(xué)生是學(xué)生:學(xué)生 st=new 大學(xué)生();
這里大學(xué)生在不同的時(shí)刻表現(xiàn)出不同的形態(tài),我認(rèn)為這就是多態(tài)
多態(tài)實(shí)現(xiàn)的前提和體現(xiàn)有以下幾點(diǎn):1.有繼承關(guān)系 2.有方法重寫(xiě) 3.有父類引向子類對(duì)象
下面通過(guò)代碼來(lái)給大家展示一下封裝,繼承,多態(tài) java的這三大特性
4.上代碼,效果運(yùn)行放在最后
package Cl1; //先創(chuàng)造一個(gè)Computer的父類 public class Computer { //定義屬性,利用private關(guān)鍵字,對(duì)類的性質(zhì)進(jìn)行封裝, private String name; private int price; //構(gòu)造一個(gè)無(wú)參方法 public Computer(){ } //構(gòu)造一個(gè)有參方法 public Computer(String name) { this.name = name; } //構(gòu)造一個(gè)有參方法 public String getName() { return name; } //通過(guò)set加變量名,首字母大寫(xiě)來(lái)設(shè)置 public void setName(String name) { this.name = name; } //通過(guò)get加變量名,首字母大寫(xiě)來(lái)獲取 public Computer(int price) { this.price = price; } //通過(guò)set加變量名,首字母大寫(xiě)來(lái)設(shè)置 public void setPrice(int price) { this.price = price; } //通過(guò)get加變量名,首字母大寫(xiě)來(lái)獲取 public int getPrice() { return price; } //定義父類study方法 public void study(){ System.out.println("電腦能用來(lái)學(xué)習(xí),也能敲代碼"); } }
package Cl1; //定義一個(gè)Lenovo的子類來(lái)繼承父類 public class Lenovo extends Computer{ public Lenovo(){ } public Lenovo(String name){ super(name); } //重新study方法,并且同時(shí)繼承調(diào)用父類中的study方法 public void study(){ super.study(); System.out.println(getName()+"價(jià)格"+getPrice()+"rmb,"+"敲代碼,年入百萬(wàn)不是夢(mèng)"); } }
package Cl1; //創(chuàng)建一個(gè)Apple的子類來(lái)繼承Computer public class Apple extends Computer{ //定義make方法,同時(shí)Computer中的s對(duì)象 調(diào)用study方法 public void make(Computer s){ s.study(); } }
package Cl1; //測(cè)試類別 public class test { public static void main(String[] args) { //自動(dòng)轉(zhuǎn)型(向上轉(zhuǎn)型) Computer cp=new Lenovo(); cp.setName("聯(lián)想小新"); cp.setPrice(5000); //調(diào)用Lenovo中的study方法 cp.study(); //多態(tài)展現(xiàn), Apple apple=new Apple(); apple.make(cp); } }
到此這篇關(guān)于淺談Java封裝、繼承、多態(tài)特性的文章就介紹到這了,更多相關(guān)Java封裝繼承多態(tài)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot yml定義屬性,下文中${} 引用說(shuō)明
這篇文章主要介紹了springboot yml定義屬性,下文中${} 引用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04Spring Boot基礎(chǔ)入門之基于注解的Mybatis
這篇文章主要給大家介紹了關(guān)于Spring Boot基礎(chǔ)入門之基于注解的Mybatis的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07Spring?Boot對(duì)接Oracle數(shù)據(jù)庫(kù)具體流程
這篇文章主要給大家介紹了關(guān)于Spring?Boot對(duì)接Oracle數(shù)據(jù)庫(kù)的具體流程,本文將介紹如何在Spring Boot中連接Oracle數(shù)據(jù)庫(kù)的基本配置,包括添加依賴、配置數(shù)據(jù)源、配置JPA等,需要的朋友可以參考下2023-11-11使用Java實(shí)現(xiàn)動(dòng)態(tài)生成MySQL數(shù)據(jù)庫(kù)
這篇文章主要為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)動(dòng)態(tài)生成MySQL數(shù)據(jù)庫(kù),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02Java集合中的WeakHashMap、IdentityHashMap、EnumMap詳解
這篇文章主要介紹了Java集合中的WeakHashMap、IdentityHashMap、EnumMap詳解,HashMap的key保留了對(duì)實(shí)際對(duì)象的強(qiáng)引用,這意味著只要HashMap對(duì)象不被銷毀,還HashMap的所有key所引用的對(duì)象就不會(huì)被垃圾回收,需要的朋友可以參考下2023-09-09springboot跨域訪問(wèn)cros與@CrossOrigin注解詳析
這篇文章主要給大家介紹了關(guān)于springboot跨域訪問(wèn)cros與@CrossOrigin注解的相關(guān)資料,跨域是指不同域名之間相互訪問(wèn),它是瀏覽器的同源策略造成的,是瀏覽器對(duì)JavaScript施加的安全限制,需要的朋友可以參考下2023-12-12

java實(shí)現(xiàn)html轉(zhuǎn)pdf方法步驟