| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1374 人关注过本帖
标题:为什么子类继承上一个子类情况下在下面这个子类里面无法添加静态初始块
只看楼主 加入收藏
Q1992
Rank: 2
等 级:论坛游民
帖 子:63
专家分:24
注 册:2016-6-26
结帖率:56.25%
收藏
 问题点数:0 回复次数:3 
为什么子类继承上一个子类情况下在下面这个子类里面无法添加静态初始块
package lee;

class Root {
    static{
        System.out.println("Root静态初始模块");
    }
    {
        System.out.println("Root普通初始模块");
        
    }
    public Root()
    {
        System.out.println("Roor的无参数构造器");
    }
    class Mid  extends Root
    {
    }
   
   
    static{
        System .out.println("Mid的静态初始");
    }
   
    {
        System.out.println("Mid的静态初始");
    }
    public void Mid()
    {
        System.out.println("Min无参数构造器");
    }
   
    public  void Mid(String msg)
    {
        
        System.out.println("vg");
    }
    class gsd  extends Mid
    {
        static{
            
            System.out.println("gsd静态初始");
        }
    }
    {
        System.out.println("Leaf普通初始模块");
    }
    public class Test
    {
        
    }
    public static void main(String[] args)
    {
    new Leaf();
    new Leaf();

    }
   

    }
图片附件: 游客没有浏览图片的权限,请 登录注册


2016-12-10 22:36
xu2738461746
Rank: 2
等 级:论坛游民
威 望:1
帖 子:39
专家分:70
注 册:2014-9-22
收藏
得分:0 
这代码。。。。
2016-12-13 19:01
z514402862
Rank: 2
等 级:论坛游民
帖 子:2
专家分:20
注 册:2016-12-14
收藏
得分:0 
感觉你连继承的真正思想和正确用法都没有搞清楚。
你那里面的类不只是继承Root,还是Root的内部类,内部类是可以享用外部类的所有属性和方法。
继承的作用之一就是可以复用代码。而且父类和子类都是可以单独拿来用的。你这样写,别的类只能通过Root.Mid = new Root.Mid()来创建Mid对象。
你这用内部类继承外部类,完全是多此一举。

再来回答你另外个问题,为什么子类继承上一个子类情况下在下面这个子类里面无法添加静态初始块?
首先你问题就错了,不是说继承了外部类不能用,而是不管继承不继承,在没有加static关键字的内部类不管是方法还是属性都不能加static,也不能用静态初始块
例子:static class Mid extends Root{}
2016-12-14 09:58
GrayJerry
Rank: 5Rank: 5
等 级:贵宾
威 望:14
帖 子:75
专家分:310
注 册:2015-10-20
收藏
得分:0 
3楼正解
2016-12-14 15:41
快速回复:为什么子类继承上一个子类情况下在下面这个子类里面无法添加静态初始块 ...
数据加载中...
 
   



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

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