Java课后总结11(多态,抽象,向下、向上转型)

原创 2018年04月15日 19:48:19

一,多态

(1)多态的作用:把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,在赋值后,父类型的引用可以根据赋给他的值让子类对象的特性以不同形式的执行。

(2)实现多态的两种方式:

使用父类作为方法的形参

使用父类作为方法的返回值

注:方法重写是实现多态的根本。

二,抽象

抽象方法是不需要具体实现的。

关建词: abstract

声明一个抽象类————public  abstract  class Pet{}

父类创建一个抽象方法————public abstract void toPlay();

子类必须实现父类的抽象方法————public  void toPlay(){}      注:除了子类也是抽象类则不用实现

抽象方法的规则:

抽象方法没有方法体

抽象方法必须在抽象类里

抽象方法必须在子类中被实现,除非子类也是抽象类

三,向上,向下转型

向上转型:父类的引用指向子类对象,自动进行类型转换

形式: <父类类名><引用变量名>=new <子类类名>();——————Pet pet =new Dog();

注:(1)此时通过父类引用变量调用得方法是子类覆盖或继承父类的方法,不是父类的方法

      (2)此时通过父类的引用变量无法调用子类特有的方法

向下转型:将一个指向子类对象的父类引用赋给一个子类的引用,即:父类类型转换为子类类型。需强制类型转换。

形式: <子类类名><引用变量名>= (<子类类名>)<父类的引用变量名>;——————Dog dog =(Dog)pet ;

注:在向下转型时,如果没有转换位真实子类类型,会出现类型转换异常

如何减少类型转换异常?

关键词:instanceof 运算符来进行类型的判断

注:使用instanceof时,对象的类型必须和instanceof后面的参数所指定的类在继承上有上下级关系

如:if(pet instanceof Dog){Dog dog =(Dog)pet ;} ——————只有符合是继承上下级关系,才进行向下类型转换;

四,Object类

Object类是每一个子类的间接父类,所有对象都实现Object类的方法。

Object类被子类经常重写的方法:

(1)toString() :返回当前对象本身的有关信息,按字符串对象返回

(2)equals() :比较两个对象是否是同一个对象,是则返回true

(3)hashcode() :返回该对象的哈希代码值

(4)getClass() :获取当前对象所属的类信息,返回Class对象

java多态向上、向下转型问题

向上转型  假定父类为动物,子类为狗,父类有一个方法发声(),狗继承并覆盖了一个发声方法。           在子类重写该方法  则:动物 a=new 狗();//这就为向上转型a.发声()...
  • qq_27489007
  • qq_27489007
  • 2016-07-14 14:55:47
  • 1642

Java多态 向上转型 向下转型

封装、继承、多态是面向对象的三大特征,在Java中什么是多态? Java引用变量有两种类型,分别是编译时类型和运行时类型。何为编译时类型,编译时类型就是由声明该变量时使用的类型决定,而运行时类...
  • u010695218
  • u010695218
  • 2015-03-09 21:35:29
  • 1385

JAVA笔记-多态的意义(向上转型与向下转型)

多态是面向对象的重要特性,简单点说:“一个接口,多种实现”,就是同一种事物表现出的多种形态。 编程其实就是一个将具体世界进行抽象化的过程,多态就是抽象化的一种体现,把一系列具体事物的共同点抽象出...
  • Java_Chuck
  • Java_Chuck
  • 2016-07-02 11:09:33
  • 4139

面向对象_多态中向上转型和向下转型

/* 多态的弊端: 不能使用子类的特有功能。 我就想使用子类的特有功能?行不行 行。 怎么用呢? A:创建子类对象调用方法即可。(可以,但是很多时候不合理。而且,太占内存了...
  • L1585931143
  • L1585931143
  • 2016-10-05 22:51:18
  • 1904

重新认识java(五) ---- 面向对象之多态(向上转型与向下转型)

多态,大概每个人都知道。但是,又有几个人真的理解什么是多态、多态有哪些细节呢?如果你看到这篇文章的名字,脑海中对多态没有一个清晰的概念,不妨点进来看看,也许会有收获。...
  • qq_31655965
  • qq_31655965
  • 2017-01-26 21:25:57
  • 15069

Java多态之向上转型、同名变量以及方法覆盖

Java向上转型时多态的体现,父类与子类有同名变量是内存的分配,向上转型时方法的覆盖...
  • yifeiboss
  • yifeiboss
  • 2016-11-29 21:14:02
  • 1088

多态使用中对象是向上转型或是向下转型的区别

多态基于继承;主要表现是重写; - -其实表现方式是重写和重载 对于创建的对象是向上转型还是向下转型: 向上转型:只能调用与父类引用中父类相同的方法,不能调用子类中自己定义的方法;如果在子...
  • LGHunter
  • LGHunter
  • 2016-09-24 20:23:32
  • 494

java继承向上转型和向下转型和动态绑定

java继承向上转型和向下转型和动态绑定   1 概念: 把引用变量转化为子类类型,则成为向下转型。如果把引用变量转化为父类类型,则成为向上转型。  Java代码 ...
  • hephec
  • hephec
  • 2014-06-03 11:03:33
  • 1700

黑马程序员__Java抽象类和多态总结

------- android培训、java培训、期待与您交流! ---------- 抽象类的总结  A. 抽象类的定义    抽象方法: 方法使用abstract修饰,没有方法体(大括...
  • QingHaiWeiAi
  • QingHaiWeiAi
  • 2015-12-03 23:48:24
  • 148

java面向对象之向上转型和向下转型

转型是在继承的基础上而言的,继承是面向对象语言中,代码复用的一种机制,通过继承,子类可以复用父类的功能,如果父类不能满足当前子类的需求,则子类可以重写父类中的方法来加以扩展。 向上转型:子类引用的对...
  • liu136313
  • liu136313
  • 2016-03-08 16:42:01
  • 712
收藏助手
不良信息举报
您举报文章:Java课后总结11(多态,抽象,向下、向上转型)
举报原因:
原因补充:

(最多只允许输入30个字)