面向对象三大特性之多态

2018-08-01  本文已影响0人  逆风的妞妞

多态(对象的多种形态)

继承是多态实现的基础

1.引用多态

父类的引用可以指向本类的对象 Animal obj1 = new Animal();

父类的引用可以指向子类的对象 Animal obj2 = new Dog();\

子类的引用指向父类是不允许的。eg:Dog obj3 = new Animal();//错误

2.方法多态

创建本类对象时,调用的方法是本类方法;

创建子类对象时,调用的方法是子类重写的方法或者继承的方法;

多态中的引用类型转换

1.向上类型转换(隐式/自动类型转换),是小类型到大类型的转换,无风险。

2.向下类型转换(强制类型转换),是大类型到小类型,有可能溢出。

3.instanceof运算符,来解决引用对象的类型,避免类型转换的安全性问题。

eg:Dog dog2 = (Dog)animal;//强制转换

if(animal instanceof Dog){

    Dog dog2 = (Dog)animal;

}else{

}

java中抽象类

1.语法定义

抽象类前使用abstract关键字修饰,则该类为抽象类。

应用场景:

1.在某些情况下,某个父类只是知道其子类应该包含怎样的方法,但无法准确知道这些子类如何实现这些方法。抽象类是约束子类必须有哪些方法,并不关注子类是如何去实现。

2.从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为子类的模板,从而避免了子类设计的随意性。

作用:不关注子类实现,但必须约束子类必须有哪些特征。

语法规则:

1.abstract定义抽象类

2.abstract定义抽象类方法,只有声明,不需要实现

3.包含抽象方法的类是抽象类。

4.抽象类中可以包含普通的方法,也可以没有抽象方法

5.抽象类不能直接创建,可以定义引用变量

上一篇 下一篇

猜你喜欢

热点阅读