这个问题怎么解决啊求解答应该怎么更改呢如果不用
s.name='张三'
s.age=20
s.occupation='学生'
就直接在那个括号里更改应该怎么办
public class Main5 {
// 这里要定义静态类,要不然最后在主类的时候没办法使用
public static abstract class Person{
// 定义参数
String name;
int age;
String occupation;
// 定义方法
public abstract String talk();
// 这里有创建一个有参类才能把参数放进来
public Person(String name,int age,String occupation){
this.name=name;
this.age=age;
this.occupation=occupation;
}
}
// 这里也是要定义静态类static,要不然他就是动态的,静态类是他自带的东西,动态类是后面创建对象创建的,所以不能在静态类里面调用动态类
static class Student extends Person{
public Student(String name, int age, String occupation) {
super(name, age, occupation);
// TODO Auto-generated constructor stub
}
public String talk() {
return "姓名:"+this.name+",年龄:"+this.age+",职业:"+this.occupation;
}
}
// 这里可以看出这个是静态类
public static void main(String[] args) {
Student s=new Student("张三",20,"学生");
System.out.println(s.talk());
}
}
这里一共有两个问题,第一个问题就是没有有参构造类,第二问题就是在静态类里面调用了动态类,我已经把完成的代码发出来了,具体事情看注释即可,关于静态类和动态类的相关问题(也就是你这个最初报错的原因)->https://blog.csdn.net/weixin_40378974/article/details/109922641这里有具体介绍,大概意思就是静态类是创建一开始就带着的,动态类是要创建对象之后才存在的。
如果有帮助望采纳,不要让不负责的答案误人子弟