(JAVA)关于内部类继承的问题?

发布于 2022-01-07 20:27:45 字数 286 浏览 726 评论 5

@tcxu 你好,想跟你请教个问题:

ClassA.ClassB是什么东西?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

明媚如初 2022-01-08 06:17:44

a.super(s); 不知道这个是个啥玩意?

明月松间行 2022-01-08 06:17:41

回复
a 是 类 A (class A) 的一个实体(对象)。 执行 a.super(s), 将使用字符串 s 作为参数 来 调用 类 A (class A) 的内部类 B (class B) 的、 要求一个字符串参数的 构造方法,也就是调用 类 OutputInnerClass 的超类(class B)的、要求一个字符串参数的构造方法,以便首先创建父类对象。

野心澎湃 2022-01-08 06:17:24

回复
是的。绝对是的。这是"天意":先有父亲,才能有儿子。顺"天意", OOP 的构造方法代码书写规定,第一行,必须是调用父类的构造方法,以便首先生成父亲, 然后再完成儿子的创建。否则,编译就通不过。

酒几许 2022-01-08 06:17:24

回复
@tcxu : 为什么一定要创建父类对象?创建子类对象时一定要先创建父类对象吗?

凌乱心跳 2022-01-08 05:08:36

正如书中代码的注释所言,ClassA.ClassB 是 在类 ClassA 定义之外 引荐  类 ClassA 的内部类 ClassB 的 书写 方法, 就是指 类 ClassB 。 为了进一步演示 继承内部类的场景,在书中代码的基础上,编写一个案例如下。

class ClassA{

	class ClassB{ //内部类
  	private String name;//内部类的私有属性
  	public ClassB(String name){//内部类的构造方法
  		this.name = name;
  	};
  	
  	public String info(){//内部类的成员方法
  		return name;
  		}
 	} //内部类定义完毕
 
 }
 
 public class OutputInnerClass extends ClassA.ClassB{
  public OutputInnerClass(ClassA a, String s){
     a.super(s); // 首先调用父类(ClassA 的内部类)的构造方法
   }
   public static void main(String[] args){
    ClassA a = new ClassA();
    OutputInnerClass oi = new OutputInnerClass(a,"顺应天意了却凡尘"  );
    System.out.println(oi.info());
  }
 }

UML :

输出:顺应天意了却凡尘

 

 

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文