广

Java编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

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

    2018-11-09 09:48:30 次阅读 稿源:互联网
    零七广告

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

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告