基于java中子類的繼承性的應(yīng)用介紹
1,繼承的定義
子類的成員中有一部分是子類自己申明定義的,另一部分是從他的父類繼承的。子類繼承父類的成員變量作為自己的一個(gè)成員變量,就好像他們是在子類中直接
申明一樣,可以被子類中自己的任何實(shí)例方法操作。也就是說,一個(gè)子類繼承的成員應(yīng)當(dāng)是這個(gè)類的完全意義的成員,如果子類中申明的實(shí)例方法不能操作父類
的某個(gè)成員變量,該成員變量就沒有被子類繼承,子類繼承父類的方法作為子類中的方法,就像他們是在子類中直接聲一樣,可以被子類中自己聲明的刃虎實(shí)例
方法調(diào)用。
2.子類父類在一個(gè)包中的情況
子類可以繼承父類中的除了private的成員變量和方法,作為自己的成員變量和方法。繼承的成員變量和方法的訪問權(quán)限是不變的。
/test/src/com/b510/Parent.java
package com.b510;
/**
* @author Hongten
*
* @time 2012-3-13 2012
*/
public class Parent {
private int numbera = 10;
protected int numberb = 20;
/**
* 友元函數(shù)sum()
*/
void sum() {
numberb = numbera + numberb;
System.out.println(numberb);
}
/**
* 獲得numbera,此方法是private
*
* @return numbera
*/
private int getNumbera() {
System.out.println(numbera);
return numbera;
}
/**
* 此方法是public類型的
*/
public void print() {
System.out.println("numberb+numbera=" + (numberb + numbera));
}
/**
* 此方法是protected類型的
*/
protected void say() {
System.out.println("Hello,i'm parent class!");
}
}
/test/src/com/b510/ParentAndSubClass.java
package com.b510;
/**
* @author Hongten
*
* @time 2012-3-13 2012
*/
public class ParentAndSubClass {
public static void main(String[] args) {
SubClass sub = new SubClass();
// 繼承父類中的方法
sub.say();
sub.sum();
sub.print();
// 子類自己的方法
sub.proFun();
sub.youYuan();
}
}
/test/src/com/b510/SubClass.java
package com.b510;
/**
* @author Hongten
*
* @time 2012-3-13 2012
*/
public class SubClass extends Parent {
/**
* 友元方法
*/
void youYuan() {
System.out.println("子類不能繼承numbera,但能繼承numberb=" + numberb);
System.out.println("這是子類中的友元方法");
}
/**
* private方法
*/
private void priFun() {
System.out.println("這是private方法");
}
/**
* protected方法
*/
protected void proFun() {
System.out.println("子類中可以繼承numberb=" + numberb);
}
}
運(yùn)行結(jié)果:
Hello,i'm parent class!
30
numberb+numbera=40
子類中可以繼承numberb=30
子類不能繼承numbera,但能繼承numberb=30
這是子類中的友元方法
總結(jié):子類和父類在同一個(gè)包中的時(shí)候,子類不能繼承父類的含有private的變量和方法。
3.子類和父類不在同一個(gè)包的情況
/test/src/com/Parent.java
package com;
/**
* @author Hongten
*
* @time 2012-3-13 2012
*/
public class Parent {
private int numbera = 10;
protected int numberb = 20;
/**
* 友元函數(shù)sum()
*/
void sum() {
numberb = numbera + numberb;
System.out.println(numberb);
}
/**
* 獲得numbera,此方法是private
*
* @return numbera
*/
private int getNumbera() {
System.out.println(numbera);
return numbera;
}
/**
* 此方法是public類型的
*/
public void print() {
System.out.println("numberb+numbera=" + (numberb + numbera));
}
/**
* 此方法是protected類型的
*/
protected void say() {
System.out.println("Hello,i'm parent class!");
}
}
/test/src/com/b510/ParentAndSubClass.java
package com.b510;
/**
* @author Hongten
*
* @time 2012-3-13 2012
*/
public class ParentAndSubClass {
public static void main(String[] args) {
SubClass sub = new SubClass();
// 繼承父類中的方法
sub.say();
sub.print();
// 子類自己的方法
sub.proFun();
sub.youYuan();
}
}
/test/src/com/b510/SubClass.java
package com.b510;
import com.Parent;
/**
* @author Hongten
*
* @time 2012-3-13 2012
*/
public class SubClass extends Parent {
/**
* 友元方法
*/
void youYuan() {
System.out.println("子類不能繼承numbera,但能繼承numberb=" + numberb);
System.out.println("這是子類中的友元方法");
}
/**
* private方法
*/
private void priFun() {
System.out.println("這是private方法");
}
/**
* protected方法
*/
protected void proFun() {
System.out.println("子類中可以繼承numberb=" + numberb);
}
@Override
protected void say() {
System.out.println("這是重寫父類的protected方法,say(),還可以得到numberb=" + numberb);
}
}
運(yùn)行結(jié)果:
1 這是重寫父類的protected方法,say(),還可以得到numberb=20
2 numberb+numbera=30
3 子類中可以繼承numberb=20
4 子類不能繼承numbera,但能繼承numberb=20
5 這是子類中的友元方法
總結(jié):子類和父類不在同一個(gè)包,子類可以繼承protected,public變量和方法,繼承的成員或方法的訪問權(quán)限不變,但子類不能繼承父類的友好(友元)變量和友好(友元)方法。
- Java內(nèi)部類的繼承(全)
- JAVA中阻止類的繼承(官方和非官方)
- java Person,Student,GoodStudent 三個(gè)類的繼承、構(gòu)造函數(shù)的執(zhí)行
- Java類的繼承實(shí)例詳解(動(dòng)力節(jié)點(diǎn)Java學(xué)院整理)
- Java面向?qū)ο缶幊讨惖睦^承詳解
- java用接口、多態(tài)、繼承、類計(jì)算三角形和矩形周長及面積的方法
- java中子類繼承父類,程序運(yùn)行順序的深入分析
- JAVA 繼承基本類、抽象類、接口介紹
- Java多線程繼承Thread類詳解
- 淺談java繼承中是否創(chuàng)建父類對(duì)象
- Java類的繼承原理與用法分析
相關(guān)文章
IntelliJ IDEA下Maven創(chuàng)建Scala項(xiàng)目的方法步驟
這篇文章主要介紹了IntelliJ IDEA下Maven創(chuàng)建Scala項(xiàng)目的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
IDEA集成DeepSeek的詳細(xì)教程(保姆級(jí)教程)
DeepSeek作為一款強(qiáng)大的代碼搜索和分析工具,能夠幫助開發(fā)者快速定位代碼、理解項(xiàng)目結(jié)構(gòu)以及優(yōu)化代碼質(zhì)量,本文將詳細(xì)介紹如何在IntelliJ?IDEA中集成DeepSeek,并展示如何利用它來提升開發(fā)效率,感興趣的朋友一起看看吧2025-02-02
java數(shù)組實(shí)現(xiàn)隊(duì)列及環(huán)形隊(duì)列實(shí)現(xiàn)過程解析
這篇文章主要介紹了java數(shù)組實(shí)現(xiàn)隊(duì)列及環(huán)形隊(duì)列實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
Java中Easyexcel?實(shí)現(xiàn)批量插入圖片功能
這篇文章主要介紹了Easyexcel?實(shí)現(xiàn)批量插入圖片,本文通過實(shí)例代碼給大家介紹了easyexcel文檔處理工具、自定義圖片處理器的相關(guān)知識(shí),需要的朋友可以參考下2022-04-04
Java Swing組件下拉菜單控件JComboBox用法示例
這篇文章主要介紹了Java Swing組件下拉菜單控件JComboBox用法,結(jié)合具體實(shí)例形式分析了Swing組件下拉菜單控件JComboBox的具體定義、使用方法及相關(guān)使用注意事項(xiàng),需要的朋友可以參考下2017-11-11
idea輸入sout無法自動(dòng)補(bǔ)全System.out.println()的問題
這篇文章主要介紹了idea輸入sout無法自動(dòng)補(bǔ)全System.out.println()的問題,本文給大家分享解決方案,供大家參考,需要的朋友可以參考下2020-07-07
Java OpenCV實(shí)現(xiàn)圖像鏡像翻轉(zhuǎn)效果
這篇文章主要為大家詳細(xì)介紹了Java OpenCV實(shí)現(xiàn)圖像鏡像翻轉(zhuǎn)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07

