Java二章学习内容5(多态、向上,向下转型、abstract抽象、Object)

一.多态的概念和应用
概念:同一个引用类型,使用不同的实例执行不同的操作
          方法重写是多态的基础
应用:使用父类作为方法的形参,是java中实现和使用多态的主要形式
           使用父类作为返回值,也是java中实现和使用多态的主要形式


.转型
向上转型    <父类型><引用变量名>=new<子类型>();    例如:Pet pet = new Dog();
通过父类引用变量调用的方法是子类覆盖或继承父类的方法,不是父类的方法
通过父类引用变量无法调用子类的特有属性或方法

向下转型    <子类型><引用变量名>=(子类型父类型的引用变量名;    例如:Dog dog = (Dog)pet;
向下转型过程中如果没有转换为真实子类类型,会出现类型转换异常(编译没错,运行出错   lang.ClassCastException;)
转换异常需要使用       instanceof        对象的类型必须和instanceof后面的参数锁指定的类在继承上有上下级关系

Pet dog =new  Dog("多多",30.89."吉娃娃");
if(dog instanceof  Dog ){
            Dog d = (Dog)dog
            d.XXXX  //输出独有方法
}else if(dog instanceof  Penguin){
            Penguin p =(Penguin)dog
            p.XXXX  //输出独有方法
}

三.abstract抽象
结论:1.有抽象方法的一定是抽象类,抽象类不一定要有抽象方法
          2.抽象类不能被实例化
 Pet pet =new pet();
          3.抽象类的子类可以是普通类,该普通类一定要实现抽象方法
          4.抽象类的子类也可以是抽象类,此时父类中的抽象方法可以在子类不被实现

public abstract class Car   {}           -------------代表抽象类
public abstract void  kanche();       -------------代表抽象方法

四.Object

Object是所有默认类的父类,如已有父类属于间接父类,有四个基础属性均可以修改,常用的修改
toString   返回当前对象的有关信息,按字符串对象返回

equals    比较两个内存地址是否相同,与==没有区别,可以调用进行重写!

方法
说明
toString()   返回当前对象本身有关信息,按字符串对象返回
equals()    比较两个对象是否是同一对象(包括内存地址),是则返回true
hashCode()    返回该对象的哈希代码值
getClass()  获取当前对象所属的类信息,返回class对象  

猜你喜欢

转载自blog.csdn.net/jayvergil/article/details/79937558
今日推荐