码迷,mamicode.com
首页 > 编程语言 > 详细

java向上转型的问题

时间:2014-11-23 14:20:37      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:ar   sp   java   问题   bs   as   new   nbsp   方法   

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
class A{
private String s1 = "A1" ;
public String s2 = "A2" ;
public String get(){
return s2 ;
}
public String getS1(){
return s1 ;
}

}
class B extends A{
private String s1 = "B1" ;
public String s2 = "B2" ;
public String get(){
return s2 ;
}
public String getS1(){
return s1 ;
}
}

public class test{
public static void main(String[] args){
A b = new B() ;
System.out.println(b.get()) ;
System.out.println(b.getS1()) ;
System.out.println(b.s2) ;
}
}

 

结果:
B2
B1
A2

结论:
类在向上转型后,private的属性依然是子类的属性,因为private不能直接访问,需要提供对外方法,而方法在向上转型后依然是子类的方法,所以private的属性不会改变而非private的属性在向上转型后都会改变.方法在向上转型后是不会改变的.
总而言之,向上转型后,直接访问的属性会转型成基类的属性,方法还是子类的方法,通过子类的方法返回的字段值还是子类的值!

java向上转型的问题

标签:ar   sp   java   问题   bs   as   new   nbsp   方法   

原文地址:http://www.cnblogs.com/dyc-cfc/p/4116391.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!