第五章 继承和多态相关问题研究

1. superthis关键字的使用问题

public  class Manager extends Employ {

public int getSlary(){

return (super.getSlary()+2000);

}

public static void main(String[] args){

Manager boss=new Manager();

System.out.println(boss.getSlary());

}

}

class Employ{

public int getSlary(){

return 3000;

}

}

在使用super关键字中我们调用了超类中的getSlary()方法,并没有调用子类中的方法,如果不加super,方法会无限调用自身,知道程序崩溃。

2. super在构造器中的使用

public Manager(String name,int Salary){

super(String name,int Salary);

}

super(String name,int Salary);是调用超类中构造器的简写形式。

多态

1. 可以将自类中的变量值赋值给超类中的变量

Employ e;

e=new Employ();//e引用Elemploy对象

e=new Manager();//e引用Elemploy子类的对象

2. 继承中的置换法则

Manager boss=new boss("zhangming",1888,8,8);

Elemploy e=boss;

在这个例子中bosse引用的是同一个对象,但编译器将e看成Elemploy对象,这意味着e不能调用boss中的内容,即不能调用子类中的成员方法。

3.动态绑定

public  class Manager{
    
class Elemploy{
    private String name;
    private int year;
    private int month;
    private int day;
    private String  id="employ";
    public Elemploy(String name,int year,int month,int day){
        this.name=name;
        this.year=year;
        this.month=month;
        this.day=day;
    }
    public void  putid(String id){
        this.id=id;
    }
    public void  display()
    {
        System.out.println("name:  "+name+"year:  "+year+"month:  "+month+"day:  "+day+"ID: "+id);
    }
}
class manager extends Elemploy{
    public manager(String name,int year,int month,int day){
        super(name,year,month, day);
        super.putid("boss");
    }
    
    
}
public static void main(String[] args){
        Manager boss=new Manager();
        manager b= boss.new manager("zhang",1,2,3);
        b.display();

        Elemploy e=boss.new Elemploy("tai",1,2,4);

       e.display();

        e=b;   //用子类初始化超类
        e.display();
        
    }
}


转载于:https://www.cnblogs.com/sunchongwei/p/9567659.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值