阿花宝宝java基础笔记之多态区分

     2022-05-04     588

关键词:

 多态
 Pet p = new Dog();
 前边是父类类型 后面是子类类型;
 都是p.mm();
1、如果父类有 子类有
   那么调用 子类的
2、如果父类有 子类没有
   那么调用  父类的
3、如果父类没有 子类有
   那么 报错!!!!
一 。 多态
   父类类型  父类引用 = new 子类类型();
   多态 三要素:
   1 、  要有继承关系  extends
   2 、  要有方法重写  
 第一种情况子类没有重写父类同名方法时,子类对象调用的是父类的方法
 第二种情况  父类没有此方法,无法使用父类对象去调用(编译不能通过)
 编译时: 看写的对象是什么类型  就访问什么类型
 运行时: 会根据传进来的真实类型来调用相应方法
 JVM动态绑定机制:根据运行时的真实类型去调用相应的方法
   3 、  要有父类引用指向子类对象
二 、 抽象方法
  1 、 抽象方法没有具体实现 访问修饰符 abstract  返回类型 方法名()

  2 、 抽象方法所在的类必须是抽象类
       访问修饰符 abstract class() 类名
  3 、 子类必须实现抽象服了的抽象方法  除非子类也是抽象的
  4 、 抽象类中可以有抽象方法 也可以没有
  5 、 抽象类不可以被实例化
三  向下转型和向下转型
向下转型:
  (子类类型)子类引用 = (子类类型)父类引用
   向下转型后才能调用子类特有的方法
 
   当要转换类型与父类引用指向的子类类型不一致时候  报错。。。。。。。

   解决办法
   使用 instanceof 关键字判断类型
  
四 、父类类型作为方法的返回值
  访问修饰符 父类类型 方法命(参数){
 return 具体子类对象;

   测试类  :
   1. 询问: 要打印什么呀?  (电视类还是视频)
   2. 根据询问的结果 返回一个具体的子类对象  
   3.

阿花宝宝java基础笔记之构造方法

构造方法语法:public类名(){}1.实例化对象时,调用类的默认的隐藏的无参的构造方法。2.如果有自定义的构造方法,则不调用默认的类的无参的构造方法。 类名对象名=new类名();//这是调用了的类的无参的构造方法 ... 查看详情

阿花宝宝java基础笔记之集合框架

基本接口:Collection 接口:List 实现类:ArrayListLinkedList 接口:Set(唯一,无序) 实现类:HashSet(哈希)TreeSetMap接口:Map 实现类:HashMap---------------------------------------------------------------------- 查看详情

阿花宝宝java基础笔记之封装

为什么要用封装 安全方便降低耦合封装的步骤:1.将属性变为private修饰2.写封装的方法 publicvoidsetXxx(参数){ //根据处理逻辑给属性赋值 } public属性类型getXxx(){ //return属性值 }访问修饰符 一个.java文... 查看详情

阿花宝宝java基础笔记之

一。类的方法概述1.什么是类的方法 类的方法是一个功能模块,其作用是“做一件事” 类的方法:一类事物共同行为就是类的方法。2.如何定义类的方法 类的方法必须包括以下三个部分:   方法的名... 查看详情

阿花宝宝java基础笔记之继承

一,继承 当某些类有一些共同内容时,可以把这些共同的内容抽取到父类中。1.分析出多个类共有的属性和方法2.将这些共有的抽取出一个父类,创建父类,讲共同的内容抽取到父类,本类只保留特有的内容3.子类使用extends... 查看详情

阿花宝宝java基础笔记之运算符

1.赋值运算符  = 变量名= 表达式; 把等号右边的表达式的值赋值给等号左边的变量2.算术运算符    +-*/%++--  ++在前先自加再运算  ++在后先运算在自加 复合赋值运算符 +=-=*=&nbs... 查看详情

阿花宝宝java基础笔记之带参方法

一,带参方法1.如何定义带参方法<访问修饰符>返回类型<方法名>(<参数列表>){ //方法的主体}访问修饰符:publicprotectedprivate返回值类型:   无返回值:void 方法体内没有return   有返回值... 查看详情

阿花宝宝java基础笔记之引用类型作为参数

一,引用类型作为参数1.数组类型作为方法返回值 方法体内return的返回类型与方法定义的返回值类型必须一致。2.数组类型作为参数 调用时方法内的实参为数组为定义方法时的形参类型2.对象类型的参数  对象属于... 查看详情

阿花宝宝java基础笔记之继承相关问答题

继承问答题:1、创建对象一定会调用类里边的构造方法你知不知?        yes2、类里边能有多个构造方法你知不知道?   yes3、如果类里边有多个构造方法你会调用那个你知不知道?4、什... 查看详情

阿花宝宝java基础笔记之抽象类与抽象方法

一、抽闲累和抽象方法  1、 抽象类中的抽象方法必须被子类实现 除非子类也是抽象的。  2、抽象类不能呗实例化 但是抽象类的引用可以志向一个具体实现他的子类对象  3、 抽象类中的有构... 查看详情

阿花宝宝java笔记之初识java

1.记事本开发一个Java程序 编写源程序  源程序以.java为后缀名 编译    javac 编译后生成的文件以.class为后缀名 运行    java运行编译后生成的.class文件2.java程序框架publicclassHello{&n... 查看详情

阿花宝宝java基础笔记之流程控制

1.语法:if(条件1){          //代码1       }elseif(条件2){          //代码块2& 查看详情

阿花宝宝java基础笔记之流程控制

1.各循环可互相嵌套   一般不超过三层   外层循环变量变化一次,内层循环变量要变化一遍  注意点:循环次数。(内层循环次数*外层循环次数)2.break语句的使用 break语句用于终止某个循环,使... 查看详情

阿花宝宝java基础笔记之类和对象

一,对象对象:客观存在的事物就是对象对象包含:属性(特征) 和  方法(操作)二,类类:具有相同属性和方法的一组对象的集合。类和对象的关系就是抽象和具体的关系。类是对象的集合,对象是类的实例。定... 查看详情

知了堂学习笔记java基础知识之继承

  继承的好处提高代码的复用性。让类与类之间产生了关系,给第三个特征多态提供了前提。(无继承无多态) Java中支持单继承,不直接支持多继承,但对c++中的多继承机制进行改良。单继承:一个子类只能有一个父类... 查看详情

学习大数据:java基础篇之多态

...用问题,多态解决了程序的扩展问题,今天我们就来剖析java基础核心机制之多态,了解什么是多态,以及多态的类别以及构成动态多态的条件.要理解多态,不妨我们来举一个例子,比如我们家养了一只宠物,它的名字叫毛毛,根据这段信... 查看详情

学习大数据:java基础篇之多态

...用问题,多态解决了程序的扩展问题,今天我们就来剖析java基础核心机制之多态,了解什么是多态,以及多态的类别以及构成动态多态的条件.要理解多态,不妨我们来举一个例子,比如我们家养了一只宠物,它的名字叫毛毛,根据这段信... 查看详情

java基础之多态的那些事儿

同一个对象在不同时刻体现出来的不同状态,叫多态。多态的前提:       a.有继承或者实现关系。       b.有方法重写。       c.有父类或者父接口引用... 查看详情