使用instanceof操作符判断对象类型及方法的重载

学习内容:

一、使用instanceof操作符判断对象类型

1.instanceof操作符可以判断一个实例对象是否属于一个类。

语法:对象名 instanceof 类名

2.使用instanceof表达式的返回值为布尔值,如果返回值为true,说明此对象是该类的实例对象,如果返回值为false,说明此对象不是该类的实例对象。

示例代码:

class Grandfather{//父类
public static void draw(Grandfather p) {

}
}
class Father extends Grandfather{//子类1

}
public class Son extends Grandfather{//子类2
static Grandfather p=new Grandfather();
public static void main(String[] args) {
// TODO 自动生成的方法存根
if(p instanceof Father) {
Father q=(Father)p;
System.out.println("对象p是Father类的对象,向下转型成功");
}
else System.out.println("对象p不是Father类的对象");
if(p instanceof Son) {
Son q=(Son)p;
System.out.println("对象p是Son类的对象,向下转型成功");
}
else System.out.println("对象p不是Son类的对象");
}

}

二、方法的重载

1.重载后的方法必须与原方法的参数个数或者类型不同。

2.不定长参数

语法:返回值 方法名(参数数据类型...参数名称)

示例代码:

package 方法重载;

import java.util.Scanner;

public class Test {
public static int add(int a,int b) {
return a+b;
}
public static double add(double a,double b) {
return a+b;
}
public static int add(int...a) {//不定长参数a,在参数列表使用“...”形式定义不定长参数,其实这个不定长参数a就是一个数组。
int sum=0,i;
for(i=0;i<a.length;i++) {
sum+=a[i];
}
return sum;
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
Test t=new Test();
int a=add(1,2);
double b=add(1,3);
int c=add(1,2,3,4,5,6);
System.out.println("调用函数int add()结果为:"+a);
System.out.println("调用函数double add()结果为:"+b);
System.out.println("调用函数int add(int...a)结果为:"+c);
}

}

运算结果:

调用函数int add()结果为:3
调用函数double add()结果为:4.0
调用函数int add(int...a)结果为:21

明天任务:多态、抽象类与接口

猜你喜欢

转载自www.cnblogs.com/zyj3955/p/13376104.html