父类
//父类
public class /*父类名*/ {
public void run(){
System.out.println("run");
}
}
子类
//子类
public class /*子类名*/ extends /*父类名*/{
public void go(){
System.out.println("go");
}
}
//测试类1
public class Application {
public static void main(String[] args) {
//类型之间的转化:父类(高) 子类(低)
/*父类名*/ S1 = new /*子类名*/();
//低转高可能会丢失一些自己本来的方法
//高转低
//S1将这个对象转换为Student类型,我们就可以使用Stundet类型的方法了
/*/*父类类型*/ S2 = (Student) S1;
S2.go();*/
//简单化:
((Student)S1).go();
}
}
/* //Object>String
//Object>Person>Teacher
//Object>Person>Stundent
Object S1 = new Student();
System.out.println(S1 instanceof Student);
System.out.println(S1 instanceof Person);
System.out.println(S1 instanceof Object);
System.out.println(S1 instanceof Teacher);
System.out.println(S1 instanceof String);
System.out.println("============");
Person S2 = new Student();
System.out.println(S2 instanceof Student);
System.out.println(S2 instanceof Person);
System.out.println(S2 instanceof Object);
System.out.println(S2 instanceof Teacher);
//编译报错,Person与String没关系 System.out.println(S2 instanceof String);
System.out.println("============");
Student S3 = new Student();
System.out.println(S3 instanceof Student);
System.out.println(S3 instanceof Person);
System.out.println(S3 instanceof Object);
//编译报错,Student与Teacher没关联 System.out.println(S3 instanceof Teacher);
//编译报错,Student与String没关联 System.out.println(S3 instanceof String);*/
/**
1.父类引用指向子类的对象
2.把子类转换为父类,向上转换
3.把父类转换为子类,向下转型:强制转换
4.方便方法的调用,减少重复的代码
*/