zoukankan      html  css  js  c++  java
  • java继承示例

    package day07;
    class Fu
    {
      int num = 5;    
    }
    class Zi extends Fu
    {
          int num =7;
          void show()
          {
              int num =9;
              System.out.println(num);
              
          }
    }
    public class Extends {
         public static void main(String[] args) {
            Zi zi = new Zi();
            zi.show();
        }
    
    }

    9//自己有就不去找
    package day07;
    class Fu
    {
      int num = 5;    
    }
    class Zi extends Fu
    {
          int num =7;
          void show()
          {
              int num =9;
              System.out.println(this.num);
              
          }
    }
    public class Extends {
         public static void main(String[] args) {
            Zi zi = new Zi();
            zi.show();
        }
    
    }

    7

     
    package day07;
    class Fu
    {
      int num = 5;    
    }
    class Zi extends Fu
    {
          int num =7;
          void show()
          {
              int num =9;
              System.out.println(super.num);
              
          }
    }
    public class Extends {
         public static void main(String[] args) {
            Zi zi = new Zi();
            zi.show();
        }
    
    }

    5

     

    super代表的是父类,this代表的是本类对象的引用,super代表父类所属空间

    注意:子类父类中通常不会出现同名属性,父类中既然已经定义了num属性,子类就没有必要定义该属性

    子类无法覆父类中的show方法,因为类型不一样

    package day07;
    class Fu
    {
    public static void show()
      {
          
          System.out.println("run show1");
      }
    public void show2()
    {
        System.out.println("haha1");    
    }
    }
    class Zi extends Fu
    {
       
      public static void  show()
          {
              
              System.out.println("run show2");
              
          }
      public void show2()
      {
          System.out.println("haha2");
          
      }
    }
    public class Extends {
         public static void main(String[] args) {
            Fu f = new Zi();//注意这个地方对象的创建,以及结果,静态方法以及成员变量和普通方法的区别
            f.show();
            f.show2();
        }
    
    }

    run show1
    haha2



    对比:

    package day07;
    class Fu
    {
    public static void show()
      {
          
          System.out.println("run show1");
      }
    public void show2()
    {
        System.out.println("haha1");    
    }
    }
    class Zi extends Fu
    {
       
      public static void  show()
          {
              
              System.out.println("run show2");
              
          }
      public void show2()
      {
          System.out.println("haha2");
          
      }
    }
    public class Extends {
         public static void main(String[] args) {
            Zi z = new Zi();//注意这个地方对象的创建,以及结果,静态方法以及成员变量和普通方法的区别
            z.show();
            z.show2();
        }
    
    }

    run show2
    haha2

     

    覆盖的时候注意:

        1、子类覆盖父类的时候保证覆盖方法的权限大于等于被覆盖函数的权限

        2、覆盖方法有静态修士的时候,静态只能覆盖静态,或者被静态覆盖

        

  • 相关阅读:
    1.1 java变量及数据类型
    3. 软件测试的类型
    2.3 软件测试模型之 敏捷测试
    2.2 软件测试的手段
    2.1 软件测试的阶段
    1.1 软件测试基础概念
    浅谈内联元素inline
    微信内置浏览器清除缓存的方法
    我的package.json清单
    我的gulp.js清单
  • 原文地址:https://www.cnblogs.com/mmlovejj/p/5062746.html
Copyright © 2011-2022 走看看