静态域与动态分配
发布日期:2021-10-02 09:00:30 浏览次数:3 分类:技术文章

本文共 817 字,大约阅读时间需要 2 分钟。

 

 class Dog {

 public static void bark() {
  System.out.print("Dog ");
 }

 public static final int X = 10;

 public void bark2() {

  System.out.print("Dog ");
 }
}

class Basenji extends Dog {

 public static void bark() {
  System.out.println("Basenji");
 }

 public static final int X = 20;

 public void bark2() {

  System.out.println("Basenji");

 }

}

public class Bark {

 public static void main(String args[]) {
  
  // 静态属于类属性,不会动态分配,编译阶段即可确定,因此
  Dog woofer = new Dog();
  Dog nipper = new Basenji();

  // Dog Dog Basenji

  woofer.bark();
  nipper.bark();
  new Basenji().bark();

  // 动态分配

  // Dog Basenji Basenji
  woofer.bark2();
  nipper.bark2();
  new Basenji().bark2();

  // 10

  System.out.println(woofer.X);
  System.out.println(nipper.X);
  // 20
  System.out.println(new Basenji().X);

 }

}

 

方法(包括静态方法)不可以被隐藏(即减少访问权限);

域可以的,但是不合理,因为不符合里氏替换原则;

静态方法编译阶段即确定调用者。不存在动态绑定。

转载地址:https://blog.csdn.net/jiafu1115/article/details/7095724 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java认证:Static和Final修饰类属性变量及初始化
下一篇:sql server快速删除记录方法

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月15日 01时47分27秒