java语言中,子类如何覆写父类所定义的值?

Python013

java语言中,子类如何覆写父类所定义的值?,第1张

你父类的的属性用的private(私有),这个是没办法直接继承使用的,有三种方法修改

一:你可以把修饰改为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")