基于java中子类的继承性的应用介绍

 更新时间:2013年05月02日 17:57:18   作者:  
本篇介绍了,基于java中子类的继承性的应用。需要的朋友参考下

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变量和方法,继承的成员或方法的访问权限不变,但子类不能继承父类的友好(友元)变量和友好(友元)方法。

相关文章

  • IntelliJ IDEA下Maven创建Scala项目的方法步骤

    IntelliJ IDEA下Maven创建Scala项目的方法步骤

    这篇文章主要介绍了IntelliJ IDEA下Maven创建Scala项目的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • IDEA集成DeepSeek的详细教程(保姆级教程)

    IDEA集成DeepSeek的详细教程(保姆级教程)

    DeepSeek作为一款强大的代码搜索和分析工具,能够帮助开发者快速定位代码、理解项目结构以及优化代码质量,本文将详细介绍如何在IntelliJ IDEA中集成DeepSeek,并展示如何利用它来提升开发效率,感兴趣的朋友一起看看吧
    2025-02-02
  • java数组实现队列及环形队列实现过程解析

    java数组实现队列及环形队列实现过程解析

    这篇文章主要介绍了java数组实现队列及环形队列实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Java中Easyexcel 实现批量插入图片功能

    Java中Easyexcel 实现批量插入图片功能

    这篇文章主要介绍了Easyexcel 实现批量插入图片,本文通过实例代码给大家介绍了easyexcel文档处理工具、自定义图片处理器的相关知识,需要的朋友可以参考下
    2022-04-04
  • Java Swing组件下拉菜单控件JComboBox用法示例

    Java Swing组件下拉菜单控件JComboBox用法示例

    这篇文章主要介绍了Java Swing组件下拉菜单控件JComboBox用法,结合具体实例形式分析了Swing组件下拉菜单控件JComboBox的具体定义、使用方法及相关使用注意事项,需要的朋友可以参考下
    2017-11-11
  • Windows10安装IDEA 2020.1.2的方法步骤

    Windows10安装IDEA 2020.1.2的方法步骤

    这篇文章主要介绍了Windows10安装IDEA 2020.1.2的方法步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • idea输入sout无法自动补全System.out.println()的问题

    idea输入sout无法自动补全System.out.println()的问题

    这篇文章主要介绍了idea输入sout无法自动补全System.out.println()的问题,本文给大家分享解决方案,供大家参考,需要的朋友可以参考下
    2020-07-07
  • Java OpenCV实现图像镜像翻转效果

    Java OpenCV实现图像镜像翻转效果

    这篇文章主要为大家详细介绍了Java OpenCV实现图像镜像翻转效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • Java向上向下转型详解

    Java向上向下转型详解

    这篇文章主要为大家详细介绍了Java向上向下转型,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-09-09
  • ResponseBodyAdvice踩坑及解决

    ResponseBodyAdvice踩坑及解决

    这篇文章主要介绍了ResponseBodyAdvice踩坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06

最新评论