标题:请问一下构造方法为私有的类,可以继承吗?(原来是不可以的)
只看楼主
狂放不羁
Rank: 4
等 级:贵宾
威 望:12
帖 子:925
专家分:0
注 册:2007-1-24
得分:0 

我说一下我的理解,既然构造函数声明为了private,那么说明它只能在本类中被访问(即使子类也不行,只能是这个类本身),所以你在类外构造一个要继承有pivate构造函数的类时,首先要调用基类的构造函数,而这个构造函数只能在基类里才能访问,所以这时候complier就会给出一个错误信息!仅仅是小弟的理解,不对的地方请前辈指正!

[此贴子已经被作者于2007-3-27 8:40:26编辑过]

2007-03-27 08:39
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
得分:0 
以下是引用支离破碎在2007-3-21 10:04:57的发言:
构造方定义成private这个类就不能new了,写成这样,再加了一个自己的静态方法去new这个类,就是一个简单的单例模式了。

同意。如果构造方法是private,加静态方法new这个类,内存中就只存在一个对象。


2007-03-27 08:49
jishuai
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2006-12-15
得分:0 

似乎是不和能的啊
private是私有的.只能在类内部使用啊


2007-04-03 11:32
wcwtitxu
Rank: 2
来 自:中国普宁
等 级:论坛游民
帖 子:95
专家分:13
注 册:2006-6-7
得分:0 
以下是引用千里冰封在2007-3-21 09:51:03的发言:

只要构造方法定义成private的,那么它是不可能有子类的

不是不可能。。。。
内部类就可以继承

通过内部类间接继承,还可以创建外部的子类

程序代码:
class SuperClass {
    private SuperClass() {
       
    }

    public static class _SuperClass extends SuperClass {
        public _SuperClass() {
           
        }
    }
}

public class TestBean extends SuperClass._SuperClass {


   
    public static void main(String[] args) {

        TestBean bean = new TestBean();

        System.out.println(bean instanceof SuperClass);

    }
   
}



Scripts 学盟 - http://www./
2010-12-30 10:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-125412-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.471176 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved