一:你可以把修饰改为public(公有),这样在子类中就可以直接修改,如下:
Digimon:
public class Digimon {
public String mon
public String name
}
Patamon:
public class Patamon extends Digimon{
public Patamon(){
mon="Angemon"
}
}
二:给父类添加get,set方法,如下:
Digimon:
public class Digimon {
private String mon
private String name
public String getMon() {
return mon
}
public void setMon( String mon ) {
this.mon = mon
}
public String getName() {
return name
}
public void setName( String name ) {
this.name = name
}
Patamon:
public class Patamon extends Digimon{
public Patamon(){
setMon( "Angemon" )
}
}
}
三:给父类添加参数构造器(也需要添加get,set不然赋值了你也获取不到),如下:
Digimon:
public class Digimon {
private String mon
private String name
public Digimon() {
super()
}
public Digimon( String mon, String name ) {
super()
this.mon = mon
this.name = name
}
public String getMon() {
return mon
}
public void setMon( String mon ) {
this.mon = mon
}
public String getName() {
return name
}
public void setName( String name ) {
this.name = name
}
}
Patamon:
public class Patamon extends Digimon{
public Patamon(){
//调用父类构造器
super( "Angemon", "豆豆" )
}
}
如何需要用子类给父类赋值并保证后续创建出来的子类对象中mon = "Angemon",需要是设置mon变量为静态变量package com
public class DigimonChild extends Digimon{
public static void main(String[] args) {
Digimon.setMon("Angemon")
Digimon d1 = new Digimon()
System.out.println(d1.getMon())
Digimon d2 = new Digimon()
System.out.println(d2.getMon())
}
}
package com
public class Digimon {
private static String mon
private String name
public String getMon() {
return mon
}
public static void setMon(String mon) {
Digimon.mon = mon
}
}
使用super关键字就可以了,比如:父类里的ele属性
如果是public的直接super.ele="abc"
但如果是private的,并有set方法就调用set方法
super.setEle("abc")