montaque

小碗喝酒,小口吃肉

博客园 首页 新随笔 联系 订阅 管理
  119 随笔 :: 1 文章 :: 686 评论 :: 29万 阅读
对java 了解不多,碰到了一个不太明白的问题。
在一个类的静态方法中,为什么不能直接实例化类中包含的非静态的类。
比如一下代码:

public class Hello {
    
    interface ITest
    {
        
void SayHello(String msg);
    }
    
    public class CBaseTest
    {
        public 
void Hello(String msg)
        {
            System.out.println(
"hello" + msg);
        }
    }
    
    public   class CChild extends CBaseTest implements ITest    
    {
        public 
void SayHello(String msg)
        {
            System.out.println(
"Interface" + msg);
        }
        
        public CChild()
        {
        ;    
        }        
    }
    
    public static 
void main(String[] args)
    {
        System.out.println(
"Hello,Montaque");
        
        CChild c
=new CChild();
    }
        
}


CChild c=new CChild()的时候报错。

No enclosing instance of type Hello is accessible. Must qualify the allocation with an enclosing
 instance of type Hello (e.g. x.new A() where x is an instance of Hello).

必须要把 CChild 改为静态类或者 从新wrappe 一个方法来调用CChild 的方法。
posted on   montaque  阅读(15156)  评论(7编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示