首页 > 其他分享 >多态

多态

时间:2022-08-28 16:23:03浏览次数:52  
标签:子类 多态 say 父类 方法 public

多态

  • 即同一个方法可以根据发送对象的不同而采用多种不同的行为方式。

  • 一个对象的实际类型是确定的,但可以指向对象的引用的类型又=有很多(父类,有关系的类)

  • 多态存在的条件

                 有继承关系

                 子类重写父类的方法

public class Person {

    public void say(){
        System.out.println("say 哈喽");
    }


public class Student extends Person{

    @Override  //方法重写   快捷键:Alt+Insert
    public void say() {
        System.out.println("say 古德拜");
    }

    public  void cry(){
        System.out.println("哭死了");
    }
}



public class Amplication {

    public static void main(String[] args) {

        //一个对象的实际类型是确定的
        //可以只想的引用类型就不确定了:父类的引用指向子类

        //Student 能调用的方法都是自己的或者父类的
        Student s1 = new Student();
        //Person 父类型:可以指向子类,但是不能调用子类独有的方法
        Person s2 = new Student();

        //对象能执行哪些方法,主要看对象左边的类型,和右边的关系不大
        s1.say();
        s2.say();  //子类重写了父类的方法,所以执行子类重写之后的方法
    }
}
        /*
        多态注意事项:
            1.多态是方法的多态,属性没有多态
            2.父类和子类,有联系      类型转换异常!ClassCastException!
            3.存在条件: 继承关系,方法重写,父类引用指向子类对象! Father f1 = new Son();

                1. static 方法,属于类,它不属于实例
                2. final 常量
                3 Private 方法

        */

 

                 父类引用指向子类对象

  • 注意:多态是方法的多态 ,属性没有多态性

  • instanceof (转换类型) 引用类型

标签:子类,多态,say,父类,方法,public
From: https://www.cnblogs.com/Hangli123/p/16632965.html

相关文章

  • Java10-接口,多态
    第一章接口1.1概述接口,是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么接口的内部主要就是封装了方法,包含抽象方法(JDK7......
  • C++之多态
    C++之多态1静态联编和动态联编C++支持编译时多态(静态多态)和运行时多态(动态多态)。运算符重载和函数重载就是编译时多态,而派生类和虚函数就是运行时多态。静态多态和动态......
  • Java-多态 抽象类 接口
    1.多态1.1多态的概述(记忆)什么是多态​ 同一个对象,在不同时刻表现出来的不同形态多态的前提要有继承或实现关系要有方法的重写要有父类引用指向子类对象1.2......
  • 多态
    0.多态在继承关系的前提下,实例化出不同的对象,这些对象调用相同的方法,但是却表现出不停的行为,这就叫做多态。在C#中体现多态的三种方式:虚方法、抽象类、接口。1、虚方法......
  • 面向对象——多态
    多态即同一方法可以根据发送对象的不同而采用不同的行为方式多态是指不同的子类在继承父类后分别都重写覆盖了父类的方法,即父类同一个方法,在继承的子类中表现出不同的形......
  • 26、多态性与鸭子类型
    26、多态性与鸭子类型  多态与多态性多态指的是一类事物有多种形态,比如动物有多种形态:猫、狗、猪classAnimal:#同一类事物:动物deftalk(self)......
  • [Python学习笔记]Python基础-13 面向对象编程_继承和多态
    继承面向对象的编程有三大特性封装:函数是对语句的封装类是对函数和变量的封装继承类和类之间可以人为,手动的建立父子关系父类的属性和方法,子类可以使用......
  • Java面向对象—封装、继承、多态
    Java面向对象—封装、继承、多态在对面向对象的特征进行分析之前,先让我们来了解一下什么是面向对象。面向对象与面向过程:面向过程:是一种以过程为中心的编程思想,面向过程......
  • 《JavaStudy36》多态
     ......
  • java12 - 封装+继承+多态
    封装该露的露,该藏的藏我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。封装(数据......