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

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

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...