java多态
在子类对象中怎么访问父类同名的属性及方法? --------------------编程问答-------------------- 父类的指针指向子类实例引用的变量时父类的变量 --------------------编程问答-------------------- 属性的话,是要索引类型是父类型即可。方法的话,必须对象为父类对象才行。例如:
class A
{
public int value = 1;
public void show(){
System.out.println("A.show()");
}
}
class B extends A
{
public int value = 2;
public void show(){
System.out.println("B.show()");
}
}
此时如果:
A ab = new B();
ab.value是为1的,但是ab.show()是显示"A.show()" --------------------编程问答--------------------
//父类A--------------------编程问答-------------------- 1.创建一个子类实例,返回一个父类对象
class A{
public String a = "1234";
public void getB(String str){
System.out.println(str);
}
}
//子类B
class B extends A{
public static void main(String[] args) {
A b = new B();
b.getB(b.a);
}
}
2.返回值是父类
3.参数是父类
这都可以访问,但要保证父类的属性或方法不是private的 --------------------编程问答-------------------- --------------------编程问答--------------------
很简单,主要就是一个super关键字,下边是一个例子楼主自己看吧
public class A {
private String a = "a";
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
public void print(){
System.out.println(" class A:"+this.a);
}
public static void main(String[] args) {
B b= new B ();
b.print();
System.out.println(b.getA());
}
}
class B extends A{
private String a = "b";
public String getA() {
return super.getA();
}
public void setA(String a) {
this.a = a;
}
public void print(){
super.print();
}
} --------------------编程问答-------------------- this super 楼主知道这两个东西了 基本解决!!!!
补充:Java , Java相关