zoukankan      html  css  js  c++  java
  • .net与java中关于访问性的差异

    在.net下如下的代码是允许的
        class Program
        {
            static void Main(string[] args)
            {
                B b = new B();
                b.X = 20;
                b.Print(b);
                Console.ReadLine();
            }
        }

        class A {
            int x;
           public void Print(B b) {
                Console.Write(b.x); //可以通过编译
            }

            public int X {
                set {
                    x = value;
                }
            }
        }

        class B : A { 
             public void Print(B b){
                Console.Write(b.x); //不可以通过编译
             }
        }
    在这里的A类中可以访问B类中继承于A类的私有成员。
    下面的是Java代码
    public class A {
     private int x=0;
     public void Print(B b){
      System.out.println(b.x); // The field A.x is not visible 
       }
        public void setX(int value){
         x = value;
        }
     
     public void main(String[] args){
      B b = new B();
      b.setX(20);
      b.Print(b);
     }
    }

    class B extends A {
     
    }
    在Java中这样的访问是不允许的。

  • 相关阅读:
    laravel-13-笔记-1
    laravel-14-笔记-2
    supervisor监听器-linux安装配置
    laravel-12-artisan命令创建view文件
    linux修改主机名
    laravel-11-laravel 模型Eloquent ORM
    laravel-composer安装laravel
    laravel-10-laravel collection集合
    laravel-8-laravel数据填充
    laravel-9-laravel数据库查询 查询组件
  • 原文地址:https://www.cnblogs.com/77543/p/536097.html
Copyright © 2011-2022 走看看