为什么项目文件显示错误

项目文件上面显示错误号,怎样去掉它,这是为什么呢?具体方法!!感谢

img

就是你的代码里面有错误。有红线的地方要修改,或是要import导入包。

检查下程序有没有报错变红的地方,如果没有在项目上右键-build path 看下有没有变红的地方,配置下使用的jdk,重新编译下看看

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7658959
  • 这篇博客你也可以参考下:什么是构造函数?什么是实例?为什么说属性在构造函数中声明,方法在原型中声明?
  • 除此之外, 这篇博客: 静态方法和属性可以被继承吗?中的 结论:静态方法和属性可以被继承,但是不能被重写。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    我们将结论延伸一下:

    我们知道,类的是由成员变量和方法组成的,成员变量代表类的属性,而方法则代表类的行为。

    而具体根据静态与否,可以分为

    1.静态的成员变量

    2.非静态的成员变量

    3.静态的方法

    4.非静态的方法

    下边给出延伸的结论:

    上述的四种成员变量和方法,只有非静态的方法可以被继承并且被重写(override)

    而另外的三种,静态的成员变量/方法、非静态的成员变量,只能被继承,但是不能被重写,而是被隐藏

    在java中多态之所以能实现,主要依赖于继承和重写。有了继承和重写,就可以实现父类的引用指向不同的子类对象。而重写的最主要功能则是:在父类引用,调用子类重写的方法之后,调用的是子类重写的方法,也可以理解为,子类重写的方法优先级高于父类。但是对于隐藏来说,则没有这种优先级的“特权”。

    下边我们来通过具体的代码来验证结论

    
    
    package cn.qiaoh.inheritance;
     
    public class A {
    	public static String staticStr = "A静态成员变量";
    	public String str = "A非静态成员变量";
    	public static void staticMethod() {
    		System.out.println("A静态方法");
    	}
    	public void method(){
    		System.out.println("A非静态方法");
    	}
    }
    package cn.qiaoh.inheritance;
     
    public class C extends A {
     
    }
    package cn.qiaoh.inheritance;
     
    public class B extends A{
    	public static String staticStr = "B静态成员变量";
    	public String str = "B非静态成员变量";
    	public static void staticMethod() {
    		System.out.println("B静态方法");
    	}
    	public void method(){
    		System.out.println("B非静态方法");
    	}
    }
    package cn.qiaoh.inheritance;
     
    import org.junit.Test;
     
    public class StaticInheritance {
    	
    	@Test
    	public void test01() {
    		A a = new C();
    		System.out.println(a.str);
    		System.out.println(a.staticStr);
    		a.staticMethod();
    		a.method();	
    		//输出结果全部为父类A中的成员变量和方法,证明了静态的方法和成员变量可以被继承
    	}
    	
    	@Test
    	public void test02() {
    		A a = new B();
    		System.out.println(a.str);//A的非静态成员变量
    		System.out.println(a.staticStr);//A的静态成员变量
    		a.method();//B的成员方法
    		a.staticMethod();//A的静态成员方法
    		
    		//只有非静态的方法成功完成了重写,另外三个都是父类的方法和变量
    	}
    }
    
    例子:
    
    package com.study.test;
    
    public class A { //父类
    	public static String staticStr = "A静态属性";
    	public String nonStaticStr = "A非静态属性";
    	public static void staticMethod(){
    		System.out.println("A静态方法");
    	}
    	public void nonStaticMethod(){
    		System.out.println("A非静态方法");
    	}
    }
    package com.study.test;
    
    public class B extends A{//子类B
    	public static String staticStr = "B改写后的静态属性";
    	public String nonStaticStr = "B改写后的非静态属性";
    	public static void staticMethod(){
    		System.out.println("B改写后的静态方法");
    	}
    }
    package com.study.test;
    
    public class C extends A{//子类C继承A中的所有属性和方法
    
    }
    package com.study.test;
    
    public class StaticExtendsTest {
    
    	public static void main(String[] args) {
    		C c = new C();
    		System.out.println(c.nonStaticStr);
    		System.out.println(c.staticStr);
    		c.staticMethod();//输出的结果都是父类中的非静态属性、静态属性和静态方法,推出静态属性和静态方法可以被继承
    		
    		System.out.println("-------------------------------");
    		
    		A c1 = new C();
    		System.out.println(c1.nonStaticStr);
    		System.out.println(c1.staticStr);
    		c1.staticMethod();//结果同上,输出的结果都是父类中的非静态属性、静态属性和静态方法,推出静态属性和静态方法可以被继承
    	
    		System.out.println("-------------------------------");
    		B b = new B();
    		System.out.println(b.nonStaticStr);
    		System.out.println(b.staticStr);
    		b.staticMethod();
    		
    		System.out.println("-------------------------------");
    		A b1 = new B();
    		System.out.println(b1.nonStaticStr);
    		System.out.println(b1.staticStr);
    		b1.staticMethod();//结果都是父类的静态方法,说明静态方法不可以被重写,不能实现多态
    	}
    
    }
    
    
  • 您还可以看一下 程张浩老师的微信小程序项目实战之我画你猜视频课程课程中的 商品的展示功能和删除功能小节, 巩固相关知识点

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^