学习内容:
一、使用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
明天任务:多态、抽象类与接口