动态绑定



1 子类的方法将父类中的覆盖了,所以不会进入父类,而是根据实际类型找到对应的类,执行其相应的方法,子类将父类方法进行了重载

注意:


次动态绑定适用的是父类所固有的方法,子类对父类固有方法进行重载,如object中的toString()方法,例如A11—6

但是如果是用户自定义的方法,则是先调用父类中的方法,例如Faculty

执行子类方法

package chapter11;

public class A11_6 {

 public static void main(String[] args) {
  m(new GraduateStudent());
  m(new Student());
  m(new Person1());
  m(new Object());
 }
 public static void m(Object x)
 {
  System.out.println(x.toString());
 }
 
}
 class GraduateStudent extends Student
 {
  
 }
 class Student extends Person1
 {
  public String toString()
  {
   return "Student";
  }
 }
 class Person1 extends Object
 {
  public String toString()
  {
   return "Person";
  }
 }


先调用父类的

package chapter11;

public class Faculty extends Employee {

 public static void main(String[] args) {
  new Faculty();

 }
 public Faculty()
 {
  System.out.println("(4)Perfors faculty tasks");
 }

}

class Employee extends Person
{
 public Employee()
 {
  this("(2)this is a bad news!");
  System.out.println("(3)this is a good news!");
 }
 public Employee(String s)
 {
  System.out.println(s);
 }
}
class Person{
 public Person()
 {
  System.out.println("(1)we should ignore some bad news!");
 }
 
}

2 对象转换的应用

对象成员访问运算符(.)优先于类型转换运算符,必须使用()保证点运算符之前进行转换,例如

((Circle)object).getArea());




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洋葱ycy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值