日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java继承类型转换_#java 一个简单的例子理解java继承、成员函数重写、类型转换...

發(fā)布時(shí)間:2024/9/27 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java继承类型转换_#java 一个简单的例子理解java继承、成员函数重写、类型转换... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一個(gè)簡單的例子理解java繼承、成員函數(shù)重寫、類型轉(zhuǎn)換

1、繼承簡介

舉一個(gè)簡單的例子:筆分為很多種,比如毛筆、鋼筆、圓珠筆等等,這些筆都有一些相同的屬性比如長度、筆跡的粗細(xì)等等;但他們也有不同的特點(diǎn),比如他們的用途(毛筆可以寫對聯(lián)、鋼筆可以寫作業(yè)等等)等。這時(shí)候要編寫一個(gè)程序用類表示這些筆,一般的方法就必須把各種筆的眾多相同的屬性重復(fù)寫很多次,就很浪費(fèi)時(shí)間。這時(shí)候就可以借助繼承,先寫一個(gè)擁有所有筆共同點(diǎn)的類,再分別寫每一種筆的類,讓其繼承這個(gè)共同類即可。

先寫一個(gè)筆的類:

public class pen {

//定義長度

private int length;

//定義品牌

private String brand;

//定義筆跡的粗細(xì)

private int width;

public void setLength(int l){

length = l;

}

public int getLength(){

return length;

}

public void setBrand(String b){

brand = b;

}

public String getBrand(){

return brand;

}

public void setWidth(int w){

width = w;

}

public int getWidth(){

return width;

}

public void write(){

System.out.println("寫了一個(gè)字");

}

}

這時(shí)候?qū)懨P的類的時(shí)候,對于筆的共同屬性就只需要先用extends關(guān)鍵字繼承,再寫其特有的屬性和方法即可。(繼承的格式class 子類/派生類 extends 父類/基類/超類 ,基類/父類/超類 就是擁有共同屬性和方法的類, 子類/派生類則是從父類繼承過來,擁有它自己特有的屬性和方法的類。)

public class inkBrush extends pen{

public void writeCouplet(){

System.out.println("寫了一副對聯(lián)");

}

}

同樣,鋼筆類也只需先繼承再寫鋼筆獨(dú)有的屬性和方法。

public class pencil extends pen{

public void doHomework(){

System.out.println("完成了一次作業(yè)。");

}

}

2、關(guān)于類類里面可以被繼承的部分

Java里面的子類可以繼承父類的所有屬性和方法,只不過不能直接訪問私有成員,默認(rèn)的成員不能跨包繼承。

3、關(guān)于方法的重寫

不同的筆都可以寫字,但不同的筆寫出的子是不一樣的。這時(shí)候就需要在各種筆的子類里重寫write方法,如下所示:

public class pencil extends pen{

public void write(){

System.out.println("用鋼筆寫了一個(gè)字");

}

}

子類里重寫的方法必須和父類里的方法的關(guān)鍵字、方法名、方法里的參數(shù)個(gè)數(shù)以及每一個(gè)參數(shù)的屬性都必須相同。不然就成了方法的重載。

3、關(guān)于類的類型轉(zhuǎn)換

每種筆都可以用來寫字。當(dāng)一個(gè)學(xué)生用鋼筆寫字的時(shí)候,我們可以說“他在用鋼筆寫字”,也可以說“他在用筆寫字“。用類表示如下:

寫一個(gè)學(xué)生類:

public class student {

public void write(pen p){

p.write();

}

}

主函數(shù)里面:

public class Manage {

public static void main(String [] args){

student stu1 = new student();

pencil p1 = new pencil();

stu1.write(p1);

}

}

學(xué)生類的doHomework方法里的參數(shù)是pen的類型,主函數(shù)里student對象stu1的doHomework方法里的參數(shù)是pencil,但并沒有報(bào)錯(cuò)。這說明pencil自動轉(zhuǎn)換為了pen對象。

自動類型轉(zhuǎn)換只能從子類轉(zhuǎn)換為父類,不能從父類轉(zhuǎn)換為子類,從父類轉(zhuǎn)換為子類必須使用強(qiáng)制類型抓換。

一個(gè)學(xué)生在寫作業(yè)的時(shí)候,我們可以說“他用鋼筆寫作業(yè)”,也可以不用說明他用什么筆寫作業(yè),直接說“他用筆寫作業(yè)”。用類表示如下:

寫一個(gè)學(xué)生類:

public class student {

public void doHomework(pen p){

p.doHomework();

}

}

如果按照上述寫法會報(bào)錯(cuò),這是因?yàn)閜en這個(gè)類沒有doHomework的方法,doHomework時(shí)pen的派生類pencil里的方法。著也說明pen類的對象無法轉(zhuǎn)換成pencil類對象。這時(shí)候可以采用強(qiáng)制類型轉(zhuǎn)換(強(qiáng)制類型轉(zhuǎn)換的格式: 轉(zhuǎn)換前的類名 轉(zhuǎn)換前的對象名 = (轉(zhuǎn)換后的類名)需轉(zhuǎn)換的對象名)。如下所示:

public class student {

public void doHomework(pencil p){

p.doHomework();

}

}

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的java继承类型转换_#java 一个简单的例子理解java继承、成员函数重写、类型转换...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。