社区
Java
帖子详情
JAVA高手进来帮帮忙!!!!
一个苦逼的码农小胖子
2010-03-14 07:52:09
哪位大哥大姐能给我说说关于类的重载的基本思想!!!如何重载!!最好再加个例子讲解下!!!谢谢了!!!!!
...全文
51
2
打赏
收藏
JAVA高手进来帮帮忙!!!!
哪位大哥大姐能给我说说关于类的重载的基本思想!!!如何重载!!最好再加个例子讲解下!!!谢谢了!!!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zj836262528
2010-03-14
打赏
举报
回复
class Egg2{
protected class Yolk
{
public Yolk()
{
System.out.println("Egg2.Yolk()");
}
public void f()
{
System.out.println("Egg2.Yolk.f()");
}
}
private Yolk y=new Yolk();
public Egg2()
{
System.out.println("NewEgg2()");
}
public void insertYolk(Yolk yy)
{
y=yy;
}
public void g()
{
y.f();
}
}
public class BigEgg2 extends Egg2
{
public class Yolk extends Egg2.Yolk
{
public Yolk()
{
System.out.println("BigEgg2.Yolk()");
}
public void f()
{
System.out.println("BigEgg2.Yolk.f()");
}
}
public BigEgg2()
{
insertYolk(new Yolk());
}
public static void main(String[] args)
{
Egg2 e2=new BigEgg2();
e2.g();
}
}
zj836262528
2010-03-14
打赏
举报
回复
如果你创建了一个内部类,然后继承其外围类并重新定义此内部类时,会发生什么呢?也就是说,内部类可以被重载吗?这看起来似乎是个很有用的点子,但是“重载”内部类就好像它是外围类的一个方法,其实并不起什么作用:
classEgg{
privateYolky;
protectedclassYolk{
publicYolk(){
System.out.println(\"Egg.Yolk()\");
}
}
publicEgg(){
System.out.println(\"NewEgg()\");
y=newYolk();
}
}
publicclassBigEggextendsEgg{
publicclassYolk{
publicYolk(){
System.out.println(\"BigEgg.Yolk()\");
}
}
publicstaticvoidmain(String[]args){
newBigEgg();
}
}
输出结果为:
NewEgg()
Egg.Yolk()
缺省的构造器是编译器自动生成的,这里是调用基类的缺省构造器。你可能认为既然创建了BigEgg的对象,那么所使用的应该是被“重载”过的Yolk,但你可以从输出中看到实际情况并不是这样的。
这个例子说明,当你继承了某个外围类的时候,内部类并没有发生什么特别神奇的变化。这两个内部类是完全独立的两个实体,各自在自己的命名空间内。当然,明确地继承某个内部类也是可以的:
classEgg2{
protectedclassYolk{
publicYolk(){
System.out.println(\"Egg2.Yolk()\"); [Page]
}
publicvoidf(){
System.out.println(\"Egg2.Yolk.f()\");
}
}
privateYolky=newYolk();
publicEgg2(){
System.out.println(\"NewEgg2()\");
}
publicvoidinsertYolk(Yolkyy){
y=yy;
}
publicvoidg(){
y.f();
}
}
publicclassBigEgg2extendsEgg2{
publicclassYolkextendsEgg2.Yolk{
publicYolk(){
System.out.println(\"BigEgg2.Yolk()\");
}
publicvoidf(){
System.out.println(\"BigEgg2.Yolk.f()\");
}
}
publicBigEgg2(){
insertYolk(newYolk());
} [Page]
publicstaticvoidmain(String[]args){
Egg2e2=newBigEgg2();
e2.g();
}
}
输出结果为:
Egg2.Yolk()
NewEgg2()
Egg2.Yolk()
BigEgg2.Yolk()
BigEgg2.Yolk.f()
现在BigEgg2.Yolk通过extendsEgg2.Yolk明确地继承了此内部类,并且重载了其中的方法。Egg2的insertYolk()方法使得BigEgg2将它自己的Yolk对象向上转型,然后传递给引用y。所以当g()调用y.f()时,重载后的新版的f()被执行。第二次调用Egg2.Yolk()是BigEgg2.Yolk的构造器调用了其基类的构造器。可以看到在调用g()的时候,新版的f()被调用了。
Java
进阶
高手
课-
Java
基础编程提升
课程聚焦
Java
基础编程提升的核心知识点,以真实场景项目实战为导向,循序渐进,深入浅出的了解
Java
基础编程,讲解
Java
这门使用广泛的编程语言,助你能够游刃有余地游走在这些技术之中。
Java
客流分析_
java
编程一地铁客流仿真模拟软件。
高手
大神
进来
帮帮忙
啊~
java
编程一地铁客流仿真模拟软件。
高手
大神
进来
帮帮忙
啊~功能包括交通线路各车站多种典型日客流函数的自动生成、修正、取值、图形显示等。模拟输入早上6点到晚上11点各个时间段的进站人数,出站人数。站点不用过多 5个就行其中包括6个客流函数,上行的进、出;下行的进、出。上行,下行转站。每个站点最大容纳的客流量。点击该站点图标,比如说A,就可以显示出各时间段客流量人数。根据客流方案,用三种颜色表示出改时...
5分钟搞定!
java
免费源码网站
一、前言 最近刚读完一本书:《Netty、Zookeeper、Redis 并发实战》,个人觉得 Netty 部分是写得很不错的,读完之后又对 Netty 进行了一波很好的复习(之前用 spring boot + netty + zookeeper 模仿 dubbo 做 rpc 框架,那时候是刚学 netty 后自己造的小轮子)。 虽然对于 Netty 的使用已经比较熟悉了,而且还知道它的底层是基于
Java
NIO 做进一步的封装,使得并发性能和开发效率得到大大的提升。但是,对于同步阻塞、同步非阻塞、异步这
Java
开发自学教程!
java
包名可以大写吗
基本知识 1.学会分析源码 程序员每天都和代码打交道。经过数年的基础教育和职业培训,大部分程序员都会「写」代码,或者至少会抄代码和改代码。但是,会读代码的并不在多数,会读代码又真正读懂一些大项目的源码的,少之又少。这种怪状,真要追究起来,怪不得程序员这个群体本身 —— 它是两个原因造成的: 我们所有的教育和培训都在强调怎么写代码,并没有教大家如何读代码 大多数工作场景都是一个萝卜一个坑,我们只需要了解一个系统的局部便能开展工作,读不相干的代码,似乎没用 读源码三问:“为什么要有这样的架构”,“他
别再说你不会!
java
如何做界面开发
一、背景 我们日常在电商网站购物时经常会遇到一些高并发的场景,例如电商 App 上经常出现的秒杀活动、限量优惠券抢购,还有我们去哪儿网的火车票抢票系统等,这些场景有一个共同特点就是访问量激增,虽然在系统设计时会通过限流、异步、排队等方式优化,但整体的并发还是平时的数倍以上,为了避免并发问题,防止库存超卖,给用户提供一个良好的购物体验,这些系统中都会用到锁的机制。 对于单进程的并发场景,可以使用编程语言及相应的类库提供的锁,如
Java
中的 synchronized 语法以及 ReentrantLock 类
Java
50,549
社区成员
85,621
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章