java的对象类型转换

package t2;

public class TestStudent {

 /**
  * @param args
  */
 public static void main(String[] args) {
  
  Student s = new Student();
  s.setName("小明");
  s.setAge(20);
  s.setSchool("北京大学");
  
  // 重载
  // 同一个事物,做同一件事情,因为条件不同,做法不同
  /*
   * 1. 同一个类中的方法
   * 2. 方法名完全相同
   * 3. 方法的参数不同 (a.参数类型不同,b.参数个数不同 c.参数的顺序不同)
   * 4. 重载和方法的返回类型无关
   */
  s.info();
  s.study();
  s.study(10);
  s.study("微机原理");
  
  System.out.println("----------------");
  //重写
  // 同一件事情,一样的条件,不同的对象有不同的做法
  /*
   * 1. 必须要有继承关系,子类重写父类的方法
   * 2. 子类中重写的方法,必须和父类拥有相同的方法名和参数列表
   * 3. 重写方法时,不能使用比父类中被重写的方法更低的访问权限 。
      public ->protected -> default ->private
    (从高到低)
   */
  s.work();
  
  //对象类型转换
  // 1. 子类(subclass)对象可以当做父类对象使用
  // 2. 一个基类(superclass )的引用,不能访问子类对象新增的属性和方法
  // 3. 该子类对象,可以通过强制类型转换成 本来的子类对象 (向下转型)
  Person p = new Teacher();
  p.setName("张三");
  p.setAge(20);
  p.info();
  
  //向下转型之前 可以使用关键字 instanceof 来判断对象的类型
  
  if (p instanceof Student) {
   ((Student)p).study();
  }else{
   //不是当前对象
   System.out.println("不是Student对象");
  }
  
  
  //动态绑定   重写
  //在执行期间,根据对象的实际类型,来执行对象的方法
  p.work();
  

 }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值