lizhiping886
V2EX  ›  Java

一个很神奇的问题 为什么会报 Java .lang.InstantiationError 错误呢?

  •  
  •   lizhiping886 · Aug 6, 2019 · 4868 views
    This topic created in 2514 days ago, the information mentioned may be changed or developed.
    public class findDupicate {
    
        public static void main(String[] args) {
    
            animal i1 = new animal();
            cat i2 = new cat();
            
    
        }
    
    }
    
    class cat {
        public int age = 1;
    
        public cat() {
            System.out.println("this cat init ");
        }
    
        public void bark(){
            System.out.println("this is animal");
        }
        
    }
    
    class animal {
        public int legNum = 1;
    
        public animal(){
            System.out.println("this animal init ");
        }
    
        public void bark(){
            System.out.println("this is animal");
        }
    }
    
    

    输出是这样的

    this animal init 
    Exception in thread "main" java.lang.InstantiationError: cat
    	at findDupicate.main(findDupicate.java:6)
        
    

    为什么 animal 可以实例化成功 而 cat 不行呢?

    jdk 版本是 open-jdk 12

    6 replies    2019-08-07 09:40:22 +08:00
    chendy
        1
    chendy  
       Aug 6, 2019
    没有报错…不知所措…
    leon0318
        2
    leon0318  
       Aug 6, 2019 via Android
    没有报错,另外注意类名命名规范
    ninjachen
        3
    ninjachen  
       Aug 7, 2019 via Android
    感觉不会报错。
    类名首字母大写
    itechify
        4
    itechify  
    PRO
       Aug 7, 2019 via Android
    不会错吧,看着没毛病。另外,注意命名规范
    难不成是 jdk 的锅?
    lizhiping886
        5
    lizhiping886  
    OP
       Aug 7, 2019
    我换个 jdk 试试
    LeeSeoung
        6
    LeeSeoung  
       Aug 7, 2019
    在 JDK 8\11\12 都正常运行。还有注意类名首字母大写。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1051 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 18:33 · PVG 02:33 · LAX 11:33 · JFK 14:33
    ♥ Do have faith in what you're doing.