相关疑难解决方法(0)

子类是否继承私有字段?

这是一个面试问题.

子类是否继承私有字段?

我回答"否",因为我们无法使用"正常的OOP方式"访问它们.但是访谈者认为它们是继承的,因为我们可以间接访问这些字段或使用反射,它们仍然存在于对象中.

我回来后,在javadoc中找到以下引用:

超级私人会员

子类不继承其父类的私有成员.

你知道面试官的意见吗?

java oop inheritance private

233
推荐指数
8
解决办法
21万
查看次数

对匿名类和匿名内部类感到困惑

我去搜索学习如何在Java中使用lambda表达式,但对我来说却出现了混乱.所以我对匿名类的理解是这样的:

public class SomeObject {
   public static void main(String[] args) {
    ArrayList list = new ArrayList();
    list.add(new SomeObject());
   }

}
Run Code Online (Sandbox Code Playgroud)

我之前看过匿名内部类这个术语,但那个时候,我不知道普通的匿名类是什么.我看到很多线程和视频似乎只是将匿名内部类称为"匿名类".他们是同义词吗?我对匿名内部类的理解是:

 public class Rectangle {
 private double length;
 private double width;
 private double perimeter;

    public void calculatePerimeter() {
    perimeter = (2*length) +(2*width);
   }

     public static void main(String[] args) {
       Rectangle square = new Rectangle() {
        public void calculatePerimeter() {
            perimeter = 4*length;
        }
    };
   }

  }
Run Code Online (Sandbox Code Playgroud)

基本上,不是必须为Square编写子类,然后重写calculatePerimeter()方法,我只能创建一次性方形类,并覆盖它们的方法.它是否正确?

因此,匿名内部类与继承有关.我不理解它的使用.也许,这是因为我之前从未使用过它们,或者因为我没有太多的编程经验.你可以给我一些例子或解释它什么时候有用吗?

更新:当我将匿名内部类的代码移动到IDE时,我了解到存在错误; 显然,"正方形"甚至没有继承矩形的字段.这不是没有用吗?

相当于:

public class Rectangle {
 private double length;
 private double …
Run Code Online (Sandbox Code Playgroud)

java lambda anonymous anonymous-inner-class anonymous-class

2
推荐指数
1
解决办法
4064
查看次数