标签:f1 f2 向上 Java 子类 转型 父类 方法 public
# 向上转型
对象可以作为自己本身的类型使用,也可以作为它的基类型使用。把对某个对象的引用视为对其基类型的引用的做法被称为向上转型。
向上转型是一个较专用类型向通用类型转换,所以总是很安全的。因为导出类是基类的一个超集,可能比基类含有更多的方法,所以在向上转型过程中,类接口中唯一可能发生的事情就是丢失方法。
向上转型变量类型由new决定,还是声明?
```java
public class Father {
public String name = "父类";
public void f1(){
System.out.println("这是父类方法");
}
}
public class Son extends Father{
public String name = "子类";
public void f1(){
System.out.println("这是子类方法f1");
}
public void f2(){
System.out.println("这是子类方法f2");
}
public static void main(String[] args) {
Father f = new Son();
System.out.println(f.name);
f.f1();
f.f2();//Cannot resolve method 'f2' in 'Father'
}
}
output:
父类
这是子类方法f1
```
(1)对象的类型是由创建它的类决定的,而不是由声明它的变量决定。
(2)父类引用只能调用父类的变量和方法
(2)父类方法只有在子类没有重写的情况下可以被父类类型的引用调用。如果子类重写了该方法就会调用子类的方法(动态连接)。
(4)f.f2()报错,向上转型不能调用子类中独有的方法
[参考链接](https://blog.csdn.net/kavensu/article/details/8079460?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-0&spm=1001.2101.3001.4242)
标签:f1,f2,向上,Java,子类,转型,父类,方法,public
来源: https://www.cnblogs.com/zuoy/p/14906547.html
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。