网上都说能继承public属性,不能继承private属性,后者说的我赞同,前者我有质疑。
public class A {
public String name="aaa";
}
public class B extends A {
public String name="bbb";
}
public class Tets {
public static void main(String[] args) {
A a = new B();
System.out.println(a.name);
}
}
输出结果aaa
java子类能否继承父类public属性
答案:2 悬赏:10 手机版
解决时间 2021-04-23 20:05
- 提问者网友:缘字诀
- 2021-04-23 11:20
最佳答案
- 五星知识达人网友:春色三分
- 2021-04-23 11:32
因为你在class B中又定义了一次name,这个name会隐藏A中定义,导致B中有自己的name和继承自A的name。下面第一段是显示B类有两个name;第二段是正确使用继承;网上说法没错
public class A {
public String name = "aaa";
}
public class B extends A {
public String name = "bbb";
}
public class Tets {
public static void main(String[] args) {
A a = new B();
System.out.println(a.name); //输出的A中name
System.out.println(((B)a).name); //输出B中name
B b = new B();
System.out.println(((A)b).name); //相当于你输出的A中name
System.out.println(b.name); //输出B中name
}
}public class A {
public String name = "aaa";
}
public class B extends A {
B() {
name = "bbb"; //这里的name才是继承自A的name
}
}
public class Tets {
public static void main(String[] args) {
A a = new B();
System.out.println(a.name);
}
}
public class A {
public String name = "aaa";
}
public class B extends A {
public String name = "bbb";
}
public class Tets {
public static void main(String[] args) {
A a = new B();
System.out.println(a.name); //输出的A中name
System.out.println(((B)a).name); //输出B中name
B b = new B();
System.out.println(((A)b).name); //相当于你输出的A中name
System.out.println(b.name); //输出B中name
}
}public class A {
public String name = "aaa";
}
public class B extends A {
B() {
name = "bbb"; //这里的name才是继承自A的name
}
}
public class Tets {
public static void main(String[] args) {
A a = new B();
System.out.println(a.name);
}
}
全部回答
- 1楼网友:迟山
- 2021-04-23 12:16
我来教你,从你的描述上看,小猫小狗理解成属性是不妥的。
简单的讲,属性是对象的性质;方法是对象的行为,习惯,动作。
示例如下,不合适的地方自己改下,注意理解:
public class test2 {
public static void main(string[] argv) {
cat cat = new cat("ww", "白色");
cat.call();
cat.color();
}
}
class animal{
public animal(string name,string color){
this.name = name;
this.color = color;
}
private string name;
private string color;
public void call(){
system.out.println(name +"在叫");
}
public void color(){
system.out.println(name +"的颜色是" + color);
}
}
class cat extends animal{
public cat(string name,string color){
super(name, color);
}
}
class dog extends animal{
public dog(string name,string color){
super(name, color);
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯