Java编程语言 05.继承,多态

我的理解,多态主要是对象的引用的问题,父类的对象引用去引用子类对象会出现什么问题?子类的对象引用去引用父类对象会出现什么问题?继承,这个和class文件中的字段表有关。


继承:
01.类之间的关系是“is-a”,例如:经理和员工。经理是员工中的一员,所以经理类是子类,是员工类的子集。
02.声明子类 public class manager extends employee,关键字extends 表明构造的新类是在原来的类基础上进行的。
03.子类的属性和方法。子类继承了父类的属性,方法。注意:Final和static修饰的方法也可以继承,但是不可以重写。
04.子类想要实现新功能,可以重写父类的方法,或者自己创建一个新的方法,这个新方法父类的引用是不可以访问的。
i:重写(overread),例如getxxx()访问属性方法,子类是不可以直接访问自己的属性的。需要调用父类的访问器方法才可以访问自己的属性。
public double getSalary()
{
double baseSalary=getSalary();//这个调用是不可以访问类本身的Salary属性。
return baseSalary;
}

public double getSalary()
{
double baseSalary=super.getSalary();//这个调用是成功的
return baseSalary;
}

调用子类本身的属性,需要使用super.getxxx();

ii:子类的构造函数,如果在继承中,子类没有重载构造函数,默认也会生成一个无参的构造函数,子类的构造函数,会调用父类的构造函数,这个时候默认调用的是父类的无参构造函数,但是父类的构造函数已经重载了,可能没有这种无参的构造函数了,就会报错。
public manager(String name,int Salary,int day )
{
super(name,salary,day);//这个时候调用的是父类的参数是name,salary,day的构造函数。
}


方法的调用:
x.f(param)。
01.如果这个调用的方法是final,static,private修饰的话编译器会准确的知道需要调用的方法,直接就会调用这个方法
02.首先编译器会查看x的实际引用对象是什么类,要调用的方法名
03.实现这个类的重载解析和父类的public修饰的相同方法名的方法列举出来。找到最合适的那一项。注意,这里所说的方法都是父类有的。

多态:
多态源于Java对象的多态性。本质是方法调用的问题。
一个对象引用,可以指定多种实际类型对象,这种叫做多态。父类的对象引用可以引用子类的对象,子类的方法可能会重写过,这样就会出现不同输出。
置换法则:父类的对象引用可以被子类对象引用替换掉。
很多程序员不喜欢多态这个特性,就会用final来修饰方法,这样方法不可以重写,就实现了方法的唯一性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值