多态(Java)

一、多态

1、什么是多态?

解析:不同的对象对于同一个操作,做出的响应不同

具有表现多种形态的能力的特征

2、使用多态的优点

解析:为了实现统一调用

一个小例子:<父类类型作为参数>

父类(Pet) 子类(Gog,Penguin) 主人类(Master)测试类(Test)

Pet

public abstract class Pet {
    public abstract void eat();

}

Dog

   public class Dog extends Pet{

    @Override
    public void eat() {
        System.out.println("够吃骨头");

    }

Penguin

   public class Penguin extends Pet {

    @Override
    public void eat() {
        System.out.println("企鹅吃fish");

    }

Master

public class Master {
    //父类类型作为参数
public void feed(Pet pet)
{
    pet.eat();
    }

}

Test

    public static void main(String[] args) {
        Master master=new Master();

        Pet pet=new Dog();

        master.feed(pet);

    }

二、子类到父类的转换(向上转型)

规则:

① 将一个父类的引用指向一个子类对象,成为向上转型,自动进行类型转换

② 此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,不是父类的方法

③ 通过父类引用变量无法调用子类特有的方法

三、java中两种实现和使用多态的方式

① 使用父类作为方法形参

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

四、父类到子类的转换(向下转型)

将一个指向子类对象的父类引用赋给一个子类的引用,称为向下转型。此时必须进行强制类型转换

五、instanceof运算符

语法:

对象 instanceof 类或接口

该运算符用来判断一个对象是否属于一个类或者实现了一个接口,结果为true或false

注:

① 使用instanceof运算符时,对象的类型必须和instanceof的第二个参数所指定的类或接口在继承树上有上下级关系,否则会出现编译错误

② instanceof通常和强制类型转换结合使用



多态(Java)

时间: 2024-10-15 03:13:09

多态(Java)的相关文章

多态 JAVA

多态(Java) 一.多态 1.什么是多态? 不同的对象对于同一个操作,做出的响应不同 具有表现多种形态的能力的特征 2.使用多态的优点 : 为了实现统一调用 二.子类到父类的转换(向上转型) ① 将一个父类的引用指向一个子类对象,成为向上转型,自动进行类型转换 ② 此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,不是父类的方法 ③ 通过父类引用变量无法调用子类特有的方法 三.java中两种实现和使用多态的方式 ① 使用父类作为方法形参 ② 使用父类作为方法返回值 四.父类到子类的转换

封装、继承、多态--java

0.绪论 面向对象的三大特性是封装.继承和多态.本文以java为例简述这三个概念在java语言中的具体体现. 首先说明一下,在java中,一个对象就是一个java类的一个实例.在一个java类中,包括数据成员和方法成员,其中数据成员又被称为属性,方法成员简称为方法. 1.封装 1.1 概念:封装是指把对象(即java类)的属性和方法结合成一个独立的整体,隐藏实现细节,并提供对外访问的接口(接口是指外部可访问的数据成员和方法成员). 1.2 优点/产生原因: (1)安全性:类使用者只能通过暴露的接

面向对象三大特征之多态——Java笔记(七)

多态: 同一个实体同时具有多种形式 编译时的类型有声明该变量时使用的类型决定,运行时的类型有实际赋值给变量的对象决定 如果编译时类型和运行时类型不同,就出现多态 例: 1 class Preson{ 2 } 3 class Teacher extends Preson{ 4 } 5 6 public class Demo { 7 public static void main(String args[]){ 8 //这行代码就会产生多态 9 Preson p = new Teacher(): 1

Java之多态(动态绑定)

封装通过合并特征和行为来创建新的数据类型,"实现隐藏"则通过细节"私有化"把接口和实现分离. 继承可以允许向上转型,将对象视为它自己本身的类型或其基类来加以处理,但是这必须满足"is a"关系,而多态则消除类型之间的耦合关系,允许一种类型表现出与其他相似类型之间的区别,只要他们都是从同一个基类导出而来.多态通过分离做什么和怎么做,从另一个角度讲接口和实现分离开. 但是继承的向上转型会缩小接口,使得派生类扩展的方法向上转型之后不能使用. packa

Java 继承和多态

                                                    Java  继承和多态 Java 继承 继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为. 生活中的继承: 兔子和羊属于食草动物类,狮子和豹属于食肉动物类. 食草动物和食肉动物又是属于动物类. 所以继承需要符合的关系是:is-a,父

JAVA OO重点内容之 多态 接口

JAVA OO中 继承 封装 多态 抽象被命为面向对象编程的四大基础特征 封装隐藏了类的内部实现机制 从而可以在不影响使用者的前提条件下 改变类的内部结构 ,同时保护了数据 继承是为了重用父类代码 多态是指一个对象有多种形式的能力 一个类的子类可以定义他们唯一的行为 ,同时共享父类的某些相同特征. 具体来说多态可以理解为: 1.第一种是对象的不同方法可以用相同的方法名,也就是重载的概念 .(重载是指:在一个类里面 方法名相同 参数列表不同) 2.同一对象根据不同的消息执行相应的行为 ,也可以认为

JAVA泛型多态

先度娘一下多态的概念: 多态==晚绑定. 不要把函数重载理解为多态. 因为多态是一种运行期的行为,不是编译期的行为. 多态:父类型的引用可以指向子类型的对象. 比如 Parent p = new Child(); 当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误: 如果有,再去调用子类的该同名方法. (来源:http://www.cnblogs.com/mengdd/archive/2012/12/25/2832288.html) 那如果要在Java中泛型做多态如何使用

何为java中常说的封装、继承、多态

1.封装 将对象的状态信息隐藏在对象内部不允许外部程序访问直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问,也就是set和get方法. 主要就是两个含义: (1)把该隐藏的隐藏起来. (2)把该暴露的暴露出来. 2.继承 子类继承父类的行为. 3.多态 java 中的多态分为两种:编辑时多态和运行时多态. 编辑时的多态可以体现在方法的重载.一个方法名可以拥有不同的入参方式,方法体也不一样,根据情况的不一样去实现. 运行时多态是指让程序可以选择多个运行状态.指向子类的父类

Java语言基础28-29--接口与多态

接口与多态 Java除了平台无关的特点外,从语言的角度来看,Java的接口是该语言的又一特色.Java舍弃了C++语言中多重继承的机制,使得编写的代码更加健壮和便于维护,因为多继承不符合人的思维模式,就像生活中,人只有一个父亲,而不是多个.尽管多继承可以使编程者更加灵活的设计程序,但是程序会显得难于阅读和维护.Java不支持多继承性,即一个类只能有一个父亲.单继承性使得Java简单,易于管理和维护.那么为了克服Java单继承的缺点,Java使用了接口,一个类可以实现多个接口,Java的接口更加符

夯实Java基础系列23:一文读懂继承、封装、多态的底层实现原理

本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下Star哈 文章首发于我的个人博客: www.how2playlife.com 从JVM结构开始谈多态 Java 对于方法调用动态绑定的实现主要依赖于方法表,但通过类引用调用和接口引用调用的实现则有所不同.总体而言,当某个方法被调用时,JVM 首先要查找相应的常量池,得到方法的符号引用,并查找调用类的方法表以