java向上转型

介绍

代码

父类

复制代码
package b;

public class father_ {//father class
	String name="动物";
	int age=10;
	public void sleep() {
		System.out.println("睡");
		
	}
		
	public void run() {
		System.out.println("跑");
		
	}
	public void eat() {
		System.out.println("吃");
		
	}
	public void show() {
		System.out.println("你好");
		
	}
}

子类

复制代码
package b;

public class graduate extends father_ {
		public void eat() {
			System.out.println("猫吃鱼");
			
		}
		public void catchmouse() {
			System.out.println("猫抓老鼠");
			
		}
	}

主类

复制代码
package b;

public class main_ {

	public static void main(String[] args) {
		//向上转型,父类的引用转向了子类的
		father_ animal=new graduate();
		Object obj=new graduate();
		System.out.println(animal.catch);
		System.out.println(obj.name);
		
	}
	
}

向上转型就是我们前面讲的编译类是主类,运行类是子类,能调用的方法必须是子类和父类都有的,如果子类没有就按照查找原则找父类。并且不能调用子类特有的特有成员。因为对于我们

animal 的编译是father_,根本不知道catch是哪个

在编译阶段能够调用哪些成员是由编译类型决定的,你无法找到运行对象时的方法,

javac是看编译类型,即父类的。java看运行类型,即子类的。所以就有了运行时候的查找规则

相关推荐
一 乐3 分钟前
民宿|基于java的民宿推荐系统(源码+数据库+文档)
java·前端·数据库·vue.js·论文·源码
爱记录的小磊3 分钟前
java-selenium自动化快速入门
java·selenium·自动化
鹏码纵横5 分钟前
已解决:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 异常的正确解决方法,亲测有效!!!
java·python·mysql
weixin_985432116 分钟前
Spring Boot 中的 @ConditionalOnBean 注解详解
java·spring boot·后端
Mr Aokey7 分钟前
Java UDP套接字编程:高效实时通信的实战应用与核心类解析
java·java-ee
冬天vs不冷8 分钟前
Java分层开发必知:PO、BO、DTO、VO、POJO概念详解
java·开发语言
sunny-ll9 分钟前
【C++】详解vector二维数组的全部操作(超细图例解析!!!)
c语言·开发语言·c++·算法·面试
hong_zc12 分钟前
Java 文件操作与IO流
java·文件操作·io 流
猎人everest36 分钟前
Django的HelloWorld程序
开发语言·python·django
木棉软糖1 小时前
【记录坑点问题】IDEA运行:maven-resources-production:XX: OOM: Java heap space
java·maven·intellij-idea