国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

基于java中子類的繼承性的應用介紹

2019-11-26 16:08:48
字體:
來源:轉載
供稿:網友

1,繼承的定義

子類的成員中有一部分是子類自己申明定義的,另一部分是從他的父類繼承的。子類繼承父類的成員變量作為自己的一個成員變量,就好像他們是在子類中直接

申明一樣,可以被子類中自己的任何實例方法操作。也就是說,一個子類繼承的成員應當是這個類的完全意義的成員,如果子類中申明的實例方法不能操作父類

的某個成員變量,該成員變量就沒有被子類繼承,子類繼承父類的方法作為子類中的方法,就像他們是在子類中直接聲一樣,可以被子類中自己聲明的刃虎實例

方法調用。

2.子類父類在一個包中的情況

子類可以繼承父類中的除了private的成員變量和方法,作為自己的成員變量和方法。繼承的成員變量和方法的訪問權限是不變的。

/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;

     /**
      * 友元函數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);
     }

 }

運行結果:
復制代碼 代碼如下:

Hello,i'm parent class!
 30
 numberb+numbera=40
 子類中可以繼承numberb=30
 子類不能繼承numbera,但能繼承numberb=30
 這是子類中的友元方法

總結:子類和父類在同一個包中的時候,子類不能繼承父類的含有private的變量和方法。

3.子類和父類不在同一個包的情況
/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;

     /**
      * 友元函數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);
     }
 }

運行結果:
復制代碼 代碼如下:

1 這是重寫父類的protected方法,say(),還可以得到numberb=20
2 numberb+numbera=30
3 子類中可以繼承numberb=20
4 子類不能繼承numbera,但能繼承numberb=20
5 這是子類中的友元方法

總結:子類和父類不在同一個包,子類可以繼承protected,public變量和方法,繼承的成員或方法的訪問權限不變,但子類不能繼承父類的友好(友元)變量和友好(友元)方法。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 麻江县| 怀来县| 安塞县| 桂阳县| 开封县| 宣城市| 凌海市| 海口市| 虎林市| 西宁市| 巩留县| 甘洛县| 河西区| 太谷县| 娄烦县| 西乌| 聂荣县| 泽库县| 邛崃市| 罗平县| 郓城县| 平谷区| 卢湾区| 外汇| 江门市| 济宁市| 石渠县| 北京市| 平武县| 连南| 淳安县| 东乡县| 灵山县| 东乌| 九龙城区| 永德县| 应用必备| 琼海市| 平罗县| 乌兰浩特市| 晴隆县|