0 0

在A类中创建B类的内部类对象时,编辑器报错,求大神赐教,已附完整代码5

我在做thinking in java(第四版)的第十章的练习6.
练习6: 在第一个包中创建一个至少有一个方法的接口.然后在第二个包内创建一个类,在其中增加一个protected的内部类以实现那个接口.在第三个包中,继承这个类,并在一个方法中返回该protected内部类的对象,在返回的时候向上转型为第一个包中的接口的类型.

第一个包中,接口
package chapter1;

/**
 * thinking in java, chapter 10, exercise 6
 * @author mark.wang 20120408
 *
 */
public interface Drive {
	public void drive();
}

第二个包中,含protected的内部类
package chapter10;

import chapter1.Drive;

/**
 * thinking in java, chapter 10, exercise 6
 * @author mark.wang 20120408
 *
 */
public class Automobile {
	protected class Car implements Drive {

		public void drive() {
			System.out.println("Car Drive...");
		}
	}
}

第三个包中,创建第二个类的内部类对象,报错.
package chapter2;

import chapter1.Drive;
import chapter10.Automobile;

/**
 * thinking in java, chapter 10, exercise 6
 * @author mark.wang 20120408
 *
 */
public class Chery extends Automobile {
	
	public Drive getCar() {
		return new Car();
	}
	
	public static void main(String[] args) {
		Chery chery = new Chery();
		chery.getCar().drive();
	}
}

第14行报了The constructor Automobile.Car() is not visible的错误.
我在Automobile中为内部类Car新增一个public的构造器,就不报错了,我不明白这倒地是什么回事,求大神们赐教.

问题补充:
小哀好困 写道
因为当你没有提供构造函数而使用默认构造函数时

该构造函数的可见度是和类相同的

也就是说,你Car类的构造函数也是protected的

所以是不可见的


但是我的Chery是继承自Automobile的,protected,应该对它可见的吧.

问题补充:
小哀好困 写道
Car内部类,对于Chery是可见的没错

所以它是报,构造函数不可见错误哦

对,问题就是处在内部类的可见性上面.
小哀好困 写道
Car内部类,对于Chery是可见的没错

所以它是报,构造函数不可见错误哦

还是不明白呀,怎么会是私有呢?
它是protected的呀
2012年4月08日 22:15

4个答案 按时间排序 按投票排序

0 0

哦,笔误

好吧,最简单的来说,你Chery是继承于Car吗?

不同包,又没有层级关系,你如何能访问到它保护类型的构造函数??

2012年4月11日 06:17
0 0

Car内部类,对于Chery是可见的没错

所以它是报,构造函数不可见错误哦

2012年4月11日 00:12
0 0

亲,你再认真想想 是Car的构造函数私有哦

2012年4月11日 00:11
0 0

因为当你没有提供构造函数而使用默认构造函数时

该构造函数的可见度是和类相同的

也就是说,你Car类的构造函数也是protected的

所以是不可见的

2012年4月08日 23:18

相关推荐

    第16章 LabVIEW中的面向对象编程,labview面向对象的框架,LabView

    LabVIEW支持多态性,通过函数选板(Function Palette)中的“Object”类别,可以创建各种类型的对象引用,使得调用相同方法时,根据对象的实际类型执行不同的代码路径。 5. LabVIEW中的面向对象框架:LabVIEW提供了...

    大神项目完整代码

    “大神”项目为个人开发项目,包含了登陆注册,文件资源上传,地图导航等功能,仅供参考,请勿用于商业用途 之前版本犹豫后端服务器未缴费停止了服务... 随时跟进代码github:https://github.com/devilyouwei/dashen

    2本节课笔记)(2021事业单位系统班:职业能力倾向测验+综合应用能力1期(A类+B类+C类+D类+E类)).pdf

    从给定文件的内容中,我们可以提取出以下知识点: 1. 数学运算中的代入排除法:这是一种常见的数学问题解决策略,通过尝试不同的数值来满足特定条件,最终找到正确答案。例如,例1中提到的三位数问题,通过将个位和...

    郭大神属性动画中代码

    郭大神在其博客中详细介绍了如何在Android中使用属性动画,尤其是一些高级用法。下面,我们将深入探讨这些知识点。 首先,属性动画与传统的补间动画(Tween Animation)和帧动画(Frame Animation)不同,它不依赖...

    英国某大神写的C++ Socket类,可在MFc及Linux下编译运行

    C++ Socket类是一种在计算机网络编程中用于通信的工具,由这位英国的大神编写,能够兼容Microsoft Foundation Classes (MFC)框架以及Linux操作系统。Socket编程是实现客户端与服务器之间数据交换的基础,它允许应用...

    JavaScript中的实时代码编辑器以及源代码1.zip

    JavaScript中的实时代码编辑器以及源代码 项目:JavaScript中的实时代码编辑器及源代码 实时代码编辑器是一个使用HTML、CSS和JavaScript开发的简单项目。当你打开项目时,你可以在浏览器上看到编辑器页面,你可以...

    请教一下各位大神,我想新增一个类模块 应该如何做

    3. 创建新类模块:在VBA编辑器的左侧“项目资源管理器”窗口中,右键单击“模块”文件夹,选择“插入”然后点击“类模块”。此时,一个新的空白模块窗口将会出现,你可以在顶部输入新类模块的名称,例如“我的新类”...

    github上大神写的串口通信类_源代码库_demo代码(附有GitHub下载链接)

    在IT领域,串口通信是一种基础且重要的通信方式,尤其在嵌入式系统、物联网设备以及工业自动化中广泛应用。本文将深入探讨标题所提及的"Github上大神写的串口通信类",主要关注C++实现的SerialPort类以及RS422通信...

    易语言记事本大神之路 源代码

    《易语言记事本大神之路 源代码》是一个以易语言为基础的编程学习资源,旨在帮助初学者和有经验的程序员提升在记事本程序开发中的技能。易语言是一种面向对象、可视化、组件化的编程语言,它以其简单易学、中文编程...

    求大神帮做个音频水印的界面代码已有-音频水印.rar

    求大神帮做个音频水印的界面代码已有-音频水印.rar  呃...写了一个音频水印的代码,但是不会做软件的界面,自己用GUI做了一个,但是连wav文件的波形都读不出来,请各位高手帮帮忙看看这界面要怎么做。代码我做到...

    Electron 中的文本编辑器应用程序及其源代码.zip

    项目:JavaScript 中的简单文本编辑器 文本编辑器应用程序是一个简单的 JavaScript 文本编辑项目。谈到这个项目,它有很多功能。用户可以根据需要创建笔记和文件。该项目是官方 VS Code 应用程序的桌面应用程序。这...

    源码(523集小白到大神)

    java教程_523集java从小白到大神经典教程(P3 Java常见对象)",表明该资源是在B站(哔哩哔哩)上发布的,且是该系列教程的第三部分,专注于Java中的常见对象。"P3"可能代表"Part 3",意味着这部分教程可能重点讲解...

    Lua中文编辑器luaEditor

    它可能还包含对luac编译器的集成,使得用户可以直接在编辑器中编译和运行代码。 “中文”标签意味着luaEditor对中文用户友好,界面和帮助文档可能是中文的,这对于中国开发者来说是一个很大的便利,减少了语言障碍...

    酷派大神F2全网通版8675-A第三方中文recovery.rar

    【酷派大神F2全网通版8675-A第三方中文recovery.rar】这个压缩包文件主要涉及的是安卓智能手机的系统恢复工具,特别针对酷派大神F2全网通版8675-A这款手机。在Android操作系统中,Recovery模式是一个特殊的系统状态...

    WIL 编辑器

    5. **遵守游戏规定**:在使用WIL编辑器自定义游戏内容时,应遵循游戏的用户协议,尊重知识产权,避免非法修改和分享。 ### 四、相关工具与扩展应用 除了WIL编辑器,还有其他辅助工具,如图层编辑软件、纹理打包...

    QT 大神刘某源代码资源

    QT大神刘某源代码资源是一份宝贵的编程学习资料,它主要涵盖了QT库的多个开源项目。QT是一个跨平台的应用程序开发框架,广泛用于创建图形用户界面(GUI)和其他类型的软件。刘某,作为QT领域的专家,他的源代码示例...

    java小游戏项目(求大神找bug).zip

    java小游戏项目(求大神找bug).zipjava小游戏项目(求大神找bug).zip java小游戏项目(求大神找bug).zipjava小游戏项目(求大神找bug).zip java小游戏项目(求大神找bug).zipjava小游戏项目(求大神找bug).zip...

    JavaScript中的Markdown编辑器源代码.zip

    JavaScript中的Markdown编辑器带源代码 Markdown编辑器是一个使用HTML、CSS和JavaScript开发的简单项目。当你打开项目时,你可以在浏览器上看到编辑页面,在页面的一侧你可以输入文字。同时,在另一侧查看其结果。 ...

    C#功能完善的文本编辑器源码+使用说明可做毕设

    该系统允许您在编辑文本文件或文档时具有更大的灵活性。谈到这个系统,它具有各种功能。它将为您提供编辑文本和样式的控制。 关于系统 C#简单文本编辑器是一个小型项目,是之前应用程序的更新版本。正如名字所示,...

    声明一个图形基类并在它的基础上派生出其他类并编写程序实现各类的定义及实现

    在IT领域中,面向对象编程(OOP)是构建软件应用的基本方法之一。OOP 的核心概念之一是继承,它允许开发者基于一个现有类(称为基类或父类)创建新类(称为派生类或子类)。继承通过复用基类代码来实现更加模块化的...

Global site tag (gtag.js) - Google Analytics