Java学习day010(oop):向上造型

一、引用类型之间画等号

**引用类型变量之间画等号:**指向同一个对象,通过一个引用对数据的修改会影响另一个引用对于数据的访问
eg:房子钥匙
在这里插入图片描述
**基本类型变量之间画等号:**仅仅只做了个赋值操作,对一个变量的修改是不会影响另一个变量的
eg:身份证复印件
在这里插入图片描述

二、向上造型

1. 超类型的引用指向派生类的对象
2. 能点出来什么,看引用的类型


class Animal{
}
class Tiger extends Animal{
}
class Lion extends Animal{
}
Animal o1=new Animal();//一个动物对象时动物类型的(动物是动物)
Tiger o2=new Tiger();//老虎是老虎
Animal o3=new Tiger();//一个老虎对象是动物类型的
//超类   指向   派生类      (向上造型)
//o3.只能点出animal类中的

Tiger o4=new Animal();//动物是老虎——语义不通(编译错误)
//继承要符合 is a(是一个)的关系
FlyingObject[]enemies;//等价于下面一行代码
FlyingObject[]enemies=null;

FlyingObject[]enemies={};//等价于下面一行代码
FlyingObject[]enemies=new FlyingObject[0];
练习
	
	
	/*5 FlyingObject[]enemies;//等价于下面一行代码
		FlyingObject[]enemies=null;
		FlyingObject[]enemies={};//等价于下面一行代码
		FlyingObject[]enemies=new FlyingObject[0];
	     void action(){
	    	 System.out.println(enemies.length);
	     }
	
	     ex x=new ex();
			x.action();*/
	/*4 FlyingObject[]enemies;//等价于下面一行代码
		FlyingObject[]enemies=null;
		FlyingObject[]enemies={};//等价于下面一行代码
		FlyingObject[]enemies=new FlyingObject[0];
	     void action(){
	    	 System.out.println(enemies.length);
	     }
	
	     ex x=new ex();
			x.action();*/
	/*3FlyingObject[]enemies;//等价于下面一行代码
		FlyingObject[]enemies=null;
		FlyingObject[]enemies={};//等价于下面一行代码
		FlyingObject[]enemies=new FlyingObject[0];
	     void action(){
	    	 System.out.println(enemies.length);
	     }
	
	     ex x=new ex();
			x.action();*/
	/*2FlyingObject[]enemies;//等价于下面一行代码
		FlyingObject[]enemies=null;
		FlyingObject[]enemies={};//等价于下面一行代码
		FlyingObject[]enemies=new FlyingObject[0];
	     void action(){
	    	 System.out.println(enemies.length);
	     }
	
	     ex x=new ex();
			x.action();*/
	/*1FlyingObject[]enemies;//等价于下面一行代码
		FlyingObject[]enemies=null;
		FlyingObject[]enemies={};//等价于下面一行代码
		FlyingObject[]enemies=new FlyingObject[0];
	     void action(){
	    	 System.out.println(enemies.length);
	     }
	
	     ex x=new ex();
			x.action();*/
/*5public class Test {

	public static void main(String[] args) {
		Student[] stus;
		stus=new Student[3];
		stus[0]=new Student("zs",25,"lf",111);
		stus[1]=new Student("zz",21,"ss",112);
		stus[2]=new Student("ss",22,"dd",113);
		for(int i=0;i<stus.length;i++){
			System.out.println(stus[i].name);
			stus[i].sayhi();
		}
		Teacher[]tcs=new Teacher[3];
		tcs[0]=new Teacher("sa",54, "kk", 5000);
		tcs[1]=new Teacher("ss",33, "aa", 3000);
		tcs[2]=new Teacher("saa",44, "ss", 4000);
		for(int i=0;i<tcs.length;i++){
			System.out.println(tcs[i].name);
			tcs[i].sayhi();
		}
		Doctor[]dts=new Doctor[3];
		dts[0]=new Doctor("ss",54, "kk", "s");
		dts[1]=new Doctor("sa",33, "aa", "a");
		dts[2]=new Doctor("swa",44, "ss", "b");
		for(int i=0;i<dts.length;i++){
			System.out.println(dts[i].name);
			dts[i].sayhi();
		}
	}

}
class Person{
	int age;
	String name;
	String address;
	Person(String name,int age ,String address){
		this.address=address;
		this.age=age;
		this.name=name;
	}
	void sayhi(){
		System.out.println("hi my name:"+name+";age;"+age+";address:"+address);
	}
}
 class Student extends Person{
	int stuid;
	Student(String name,int age,String address,int stuid){
		super(name,age,address);
		this.stuid=stuid;
	}
}
 class Teacher extends Person{
	int slary;
	Teacher(String name,int age,String address,int slary){
		super(name,age,address);
		this.slary=slary;
	}
}
class Doctor extends Person{
	String leavel;
	Doctor(String name,int age,String address,String leavel){
		super(name,age,address);
		this.leavel=leavel;
	}
}*/
/*4 public class Test {

	public static void main(String[] args) {
		Student[] stus;
		stus=new Student[3];
		stus[0]=new Student("zs",25,"lf",111);
		stus[1]=new Student("zz",21,"ss",112);
		stus[2]=new Student("ss",22,"dd",113);
		for(int i=0;i<stus.length;i++){
			System.out.println(stus[i].name);
			stus[i].sayhi();
		}
		Teacher[]tcs=new Teacher[3];
		tcs[0]=new Teacher("sa",54, "kk", 5000);
		tcs[1]=new Teacher("ss",33, "aa", 3000);
		tcs[2]=new Teacher("saa",44, "ss", 4000);
		for(int i=0;i<tcs.length;i++){
			System.out.println(tcs[i].name);
			tcs[i].sayhi();
		}
		Doctor[]dts=new Doctor[3];
		dts[0]=new Doctor("ss",54, "kk", "s");
		dts[1]=new Doctor("sa",33, "aa", "a");
		dts[2]=new Doctor("swa",44, "ss", "b");
		for(int i=0;i<dts.length;i++){
			System.out.println(dts[i].name);
			dts[i].sayhi();
		}
	}

}
class Person{
	int age;
	String name;
	String address;
	Person(String name,int age ,String address){
		this.address=address;
		this.age=age;
		this.name=name;
	}
	void sayhi(){
		System.out.println("hi my name:"+name+";age;"+age+";address:"+address);
	}
}
 class Student extends Person{
	int stuid;
	Student(String name,int age,String address,int stuid){
		super(name,age,address);
		this.stuid=stuid;
	}
}
 class Teacher extends Person{
	int slary;
	Teacher(String name,int age,String address,int slary){
		super(name,age,address);
		this.slary=slary;
	}
}
class Doctor extends Person{
	String leavel;
	Doctor(String name,int age,String address,String leavel){
		super(name,age,address);
		this.leavel=leavel;
	}
}*/
/*3
public class Test {

	public static void main(String[] args) {


		Student[] stus;
		stus=new Student[3];
		stus[0]=new Student("zs",25,"lf",111);
		stus[1]=new Student("zz",21,"ss",112);
		stus[2]=new Student("ss",22,"dd",113);
		for(int i=0;i<stus.length;i++){
			System.out.println(stus[i].name);
			stus[i].sayhi();
		}
		Teacher[]tcs=new Teacher[3];
		tcs[0]=new Teacher("sa",54, "kk", 5000);
		tcs[1]=new Teacher("ss",33, "aa", 3000);
		tcs[2]=new Teacher("saa",44, "ss", 4000);
		for(int i=0;i<tcs.length;i++){
			System.out.println(tcs[i].name);
			tcs[i].sayhi();
		}
		Doctor[]dts=new Doctor[3];
		dts[0]=new Doctor("ss",54, "kk", 01);
		dts[1]=new Doctor("sa",33, "aa", 02);
		dts[2]=new Doctor("swa",44, "ss", 03);
		for(int i=0;i<dts.length;i++){
			System.out.println(dts[i].name);
			dts[i].sayhi();
		}
	}

}
class Person{
	int age;
	String name;
	String address;
	Person(String name,int age,String address){
		this.name=name;
		this.age=age;
		this.address=address;
	}
	void sayhi(){
		System.out.println(name+age+address);
	}
}
class Student extends Person{
	int suit;
	Student(String name,int age,String address,int suit){
		super(name,age,address);
		this.suit=suit;
	}
}
class Teacher extends Person{
	int slary;
	Teacher(String name,int age,String address,int slary){
		super(name,age,address);
		this.slary=slary;
	}
}
class Doctor extends Person{
	int leavel;
	Doctor(String name,int age,String address,int leavel){
		super(name,age,address);
		this.leavel=leavel;
	}
}*/
/*2
public class Test {

	public static void main(String[] args) {
		Student[] stus;
		stus=new Student[3];
		stus[0]=new Student("zs",25,"lf",111);
		stus[1]=new Student("zz",21,"ss",112);
		stus[2]=new Student("ss",22,"dd",113);
		for(int i=0;i<stus.length;i++){
			System.out.println(stus[i].name);
			stus[i].sayhi();
		}
		Teacher[]tcs=new Teacher[3];
		tcs[0]=new Teacher("sa",54, "kk", 5000);
		tcs[1]=new Teacher("ss",33, "aa", 3000);
		tcs[2]=new Teacher("saa",44, "ss", 4000);
		for(int i=0;i<tcs.length;i++){
			System.out.println(tcs[i].name);
			tcs[i].sayhi();
		}
		Doctor[]dts=new Doctor[3];
		dts[0]=new Doctor("ss",54, "kk", "s");
		dts[1]=new Doctor("sa",33, "aa", "a");
		dts[2]=new Doctor("swa",44, "ss", "b");
		for(int i=0;i<dts.length;i++){
			System.out.println(dts[i].name);
			dts[i].sayhi();
		}
		
	}

}
class Person{
	int age;
	String name;
	String address;
	Person(String name,int age,String address){
		this.address=address;
		this.name=name;
		this.age=age;
	}
	void sayhi(){
		System.out.println(name+age+address);
	}
}
class Student extends Person{
	int suit;
	Student(String name,int age,String address,int suit){
		super(name,age,address);
		this.suit=suit;
	}
}
class Teacher extends Person{
	int slary;
	Teacher(String name,int age,String address,int slary){
		super(name,age,address);
		this.slary=slary;
	}
}
class Doctor extends Person{
	String levael;
	Doctor(String name,int age,String address,String levael){
		super(name,age,address);
		this.levael=levael;
	}
}*/
/*1 
public class Test {

	public static void main(String[] args) {
		Student[] stus;
		stus=new Student[3];
		stus[0]=new Student("zs",25,"lf",111);
		stus[1]=new Student("zz",21,"ss",112);
		stus[2]=new Student("ss",22,"dd",113);
		for(int i=0;i<stus.length;i++){
			System.out.println(stus[i].name);
			stus[i].sayhi();
		}
		Teacher[]tcs=new Teacher[3];
		tcs[0]=new Teacher("sa",54, "kk", 5000);
		tcs[1]=new Teacher("ss",33, "aa", 3000);
		tcs[2]=new Teacher("saa",44, "ss", 4000);
		for(int i=0;i<tcs.length;i++){
			System.out.println(tcs[i].name);
			tcs[i].sayhi();
		}
		Doctor[]dts=new Doctor[3];
		dts[0]=new Doctor("ss",54, "kk", "s");
		dts[1]=new Doctor("sa",33, "aa", "a");
		dts[2]=new Doctor("swa",44, "ss", "b");
		for(int i=0;i<dts.length;i++){
			System.out.println(dts[i].name);
			dts[i].sayhi();
		}
	}

}
class Person{
	int age;
	String name;
	String address;
	Person(String name,int age,String address){
		this.address=address;
		this.age=age;
		this.name=name;
	}
	void sayhi(){
		System.out.println(name+age+address);
	}
}
class Student extends Person{
	int nub;
	Student(String name,int age,String address,int nub){
		super(name,age,address);
		this.nub=nub;
		
	}
}
class Doctor extends Person{
	String leavel;
	Doctor(String name,int age,String address,String leavel){
		super(name,age,address);
		this.leavel=leavel;
		
	}
}
class Teacher extends Person{
	int slary;
	Teacher(String name,int age,String address,int slary){
		super(name,age,address);
		this.slary=slary;
		
	}
}*/
class moo{
	int a;
	void show(){
		
	}
}
class noo extends moo{
	int b;
	void test(){
		
	}
}

public class asdasd {

	public static void main(String[] args) {

		moo o1=new noo();
		o1.a=2;
		o1.show();
		/*5 aoo o2=new boo();
		o2.a=3;
		o2.show();*/
		/*4aoo o3=new boo();
		o3.a=4;
		o3.show();*/
		/*3aoo o4=new boo();
		o4.a=5;
		o4.show();*/
		/*2aoo o5=new boo();
		o5.a=6;
		o5.show();*/
		/*1aoo o6=new boo();
		o6.a=7;
		o6.show();*/
	}

}
/*5 class Aoo{
int a;
void show(){
	
}
}
class boo{
int b;
void test(){
	
}
}*/
/*4 class Aoo{
int a;
void show(){
	
}
}
class boo{
int b;
void test(){
	
}
}
*/
/*3class Aoo{
int a;
void show(){
	
}
}
class boo{
int b;
void test(){
	
}
}
*/
/*2class Aoo{
int a;
void show(){
	
}
}
class boo{
int b;
void test(){
	
}
}
*/
/*1class Aoo{
int a;
void show(){
	
}
}
class boo{
int b;
void test(){
	
}
}*/

		Person[]ps=new Person[7];
		ps[0]=new Student("zs",12,"sa","112");
		ps[1]=new Student("ls", 13, "asd", "113");
		ps[2]=new Student("xc", 14, "vb", "114");	
		ps[3]=new Teacher("lk", 44, "lki", 7000);
		ps[4]=new Teacher("lgy", 66, "sk", 35000);
		ps[5]=new Doctor("asd",21,"asd","s");
		ps[6]=new Doctor("ss",43,"cv","a");
		for(int i=0;i<ps.length;i++){
			System.out.println(ps[i].name);
			ps[i].sayhi();
		}
		/*5 Person[]ps=new Person[6];
		 * ps[0]=new Student("zs",25,"yt","111");
		 * ps[1]=new Student("ll",23,"rt","112");
		 * ps[2]=new Teacher("lz",55,"lk",5555);
		 * ps[3]=new Teacher("ww",44,"jh",6666);
		 * ps[4]=new Doctor("az",45,"gf","s");
		 * ps[5]=new Doctor("er",56,"ds","a");
		 * for(int i=0;i<ps.length;i++){
			System.out.println(ps[i].name);
			ps[i].sayhi();
		}
		 */
		/*4Person[]ps=new Person[6];
		ps[o]=new Student("sa",45,"sa","12212");
		ps[1]=new Student("ds",42,"sd","12213");
		ps[2]=new Teacher("sda",45,"sa",5000);
		ps[3]=new Teacher("saa",45,"sa",6000);
		ps[4]=new Doctor("sa",45,"sa","s");
		ps[5]=new Doctor("sa",45,"sa","a");
		for(int i=0;i<ps.length;i++){
			System.out.println(ps[i].name);
			ps[i].sayhi();
		}*/
		/*3Person[]ps=new Person[3];
		ps[0]=new Student("as",32,"sd","212121");
		ps[1]=new Teacher("ass",32,"sd",10000);
		ps[2]=new Doctor("as",45,"we","a");
		for(int i=0;i<ps.length;i++){
			System.out.println(ps[i].name);
			ps[i].sayhi();
		}*/
		/*2 Person[]ps=new Person[3];
		ps[0]=new Student("ew",32,"sd","455412");
		ps[1]=new Teacher("ares",32,"gd",12000);
		ps[2]=new Doctor("afd",45,"wf","s");
		for(int i=0;i<ps.length;i++){
			System.out.println(ps[i].name);
			ps[i].sayhi();
		}*/
		/*1 Person[]ps=new Person[3];
		 * ps[0]=new Student("SA",45,"sda","212121"0;
		 * ps[1]=new Doctor("DF",12,"asd","a");
		 * ps[2]=new Teacher("zxc",21,"SAd",544554);
		 * for(int i=0;i<ps.length;i++){
		 * System.out.println(ps[i].length);
		 * ps[i].sayhi();
		 * }
		 */
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值