1.方法重写要求:方法名相同、参数类型相同、返回值相同或其子类返回值相同,子类修饰符要不小于父类

2.方法重载要求:方法名相同、参数类型不同、返回值没有改变、修饰符无关

3.多态的前提是继承。多态是定义一个方法,根据不同的角色需要生成的环境来呈现不同的业务逻辑。

public class Member{

  public void buyBook(){

  }

}

public OrdinaryMember extends Member{

  public void buyBook(){

  System.out.println("普通会员买书打九折!");}

}

public SuperMember extends Member{

  public void buyBook(){

  System.out.println("超级会员买书打六折!");}

}

public Cashier(){

  private OrdinaryMember ordinaryMember;

  public setOrdinaryMember(Ordinarymember ordinaryMemberset){

  this.ordinaryMember = ordinaryMember;}

  public setSell(){

  this.ordinaryMember.buyBook();}

}

public Test{

public static void main(String [] args){

  OrdinaryMember ordinaryMember = new OrdinaryMember();

  SuperMember superMember = new SuperMember();

  Cashier cashier = new Cashier();

  cashier..setOrdinaryMember(ordinaryMember);

  cashier.setSell();

  }

}

4.多态具体定义有两种形式:

第一种:定义时形参为父类,实际传入子类类型参数

public void setSell (Member member){

   member.buyBook();}

  Cashier cashier = new Cashier();

  OrdinaryMember ordinaryMember = new OrdinaryMember();

  cashier.setSell(ordinaryMember);

第二种:返回值类型为父类,实际调用方法时返回为子类类型

public Member  getMember(String name){

  if(name.equals("superMember")){

return superMember;}else{

  return ordinaryMember;}

}

5.多态应用:

Member member= new OrdinaryMember();//将子类对象转换为父类对象

//父类引用指向子类

SuperMember SuperMember = (SuperMember)new Member();//强制转换

6.如果一个方法只有方法声明没有方法体,那么这个方法就是抽象方法,如果一个类中有一个抽象方法,那么这个类必须定义为抽象类,抽象类和方法通过abstract修饰

7.抽象类与普通类的区别在于:抽象类不能实例化。抽象方法与扑通通方法的区别:抽象方法没有方法体

8.抽象类中可以定义普通方法,但是普通类中不能定义抽象方法

9.如果父类中有抽象方法,一旦子类继承了父类,那么子类必须重写抽象方法

public abstract Member{

  public abstract void buyBook();

}

public SuperMember extends Member(){

  @Override

  public void buyBook(){

  System.out.println("超级会员买书打六折!");}

}

10.如果子类也是抽象类就不用了重写抽象方法

11.Object类:java中最大的类。

Java中定义的一些类以及开发人员写的类的父类都是java类

Object类中最常见的方法有public String toString()以字符串形式返回对象信息

public boolean equals()方法:判别两个对象是否相同

public int hashCode();返回对象散列码

都可以被子类重写

多态、抽象、Object类的更多相关文章

  1. Java 面向对象概述原理: 多态、Object类,转型(8)

    Java 面向对象概述原理: 多态.Object类,转型(8) http://docs.oracle.com/javase/tutorial/java/IandI/override.html Java ...

  2. 第八节 多态和Object类

    多态的定义:某一类事物的多种存在形态 例子:学生类:包含学生A和学生B 学生A对象对应的类型是学生A类型:StudentA studentA = new StudentA; Student stude ...

  3. 多态、Object类和 JDK常用封装类型

    多态 定义:某一类事物的多种存在形态. 多态的体现:父类的引用指向了自己的子类对象.父类的引用也可以接收自己的子类对象. 多态的前提:必须是类与类之间有关系,要么继承,要么实现.通常还有一个前提,存在 ...

  4. 《Java从入门到失业》第五章:继承与多态(5.8-5.10):多态与Object类

    5.8多态 上面我们了解了向上转型,即一个对象变量可以引用本类及子类的对象实例,这种现象称为多态(polymorphism).多态究竟有什么用呢?我们先学习一个知识点. 5.8.1方法重写 前面我们学 ...

  5. 抽象,接口和Object类

    在面向对象的概念中, 所有的对象都是通过类来表述的, 但并不是所有的类都是用来描绘对象的, 如果一个类中么有包含足够的信息来描绘一类具体的对象, 这样的类就是抽象类. 抽象类往往用来表征对问题领域进行 ...

  6. 第二十九节:Java基础知识-类,多态,Object,数组和字符串

    前言 Java基础知识-类,多态,Object,数组和字符串,回顾,继承,类的多态性,多态,向上转型和向下转型,Object,数组,多维数组,字符串,字符串比较. 回顾 类的定义格式: [类的修饰符] ...

  7. 第10章 接口、继承与多态----Object类

    在Java中,所有的类都直接或间接继承了java.lang.Object类.Object类是比较特殊的类,它是所有类的父类,是Java类层中的最高层类.当创建一个类时,总是在继承,除非某个类已经指定要 ...

  8. 四. Java继承和多态10. Java Object类

    Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每个类都由它扩展而来. 定义Java类时如果没有显示的指明父类,那么就默认继承了 Object 类.例如: p ...

  9. 面向对象编程(九)——面向对象三大特性之继承以及重写、Object类的介绍

    面向对象三大特性 面向对象三大特征:继承 :封装/隐藏 :多态(为了适应需求的多种变化,使代码变得更加通用!) 封装:主要实现了隐藏细节,对用户提供访问接口,无需关心方法的具体实现. 继承:很好的实现 ...

  10. 黑马程序员——JAVA基础之多态与Object

    ------- android培训.java培训.期待与您交流! ----------  多态 : 多态定义:  某一类事物的多种存在形态. 多态的体现: 父类的引用指向了自己的子类对象.       ...

随机推荐

  1. Redis集群模式及工作原理

    Redis有三种集群模式:主从模式.哨兵模式和集群模式. 1. 主从模式 所有的写请求都被发送到主数据库上,再由主数据库将数据同步到从数据库上.主数据库主要用于执行写操作和数据同步,从数据库主要用于执 ...

  2. Vue3+Vite项目中 使用WindiCSS.

    之前工作有了解过根据类名来写元素的样式,一听就发出疑问:这样写项目可读性恐怕不是很好吧... 之后来到杭州工作后,开始使用WindiCSS后发现 真香!!!  由于近期所写的项目都是自己一个人开发的 ...

  3. Sublime Text3汉化好的绿色免安装版使用和破解教程+下载链接

    这个资源是我从官网上面下载好的Sublime Text3绿色版,然后通过网上的教程汉化之后再压缩的.理论上下载完之后,解压就可以用了,不过由于是绿色版,可能需要调一下默认打开方式.才好直接双击打开.绿 ...

  4. CentOS VMWare安装纪要

    一.VMware虚拟机下载与安装 版本:VMware Workstation 16 Pro 二.CentOS下载与安装 版本:CentOS-7-x86_64-DVD-2009.iso 三.CentOS ...

  5. abp框架+mysql 数据库 执行批量新增和修改

    protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken. ...

  6. 博弈论练习8 Northcott Game(取石子问题)

    题目链接在这里:I-Northcott Game_牛客竞赛博弈专题班组合游戏基本概念.对抗搜索.Bash游戏.Nim游戏习题 (nowcoder.com) 这题是一个伪装的很好的取石子问题,可以发现, ...

  7. Pytorch-UNet-master>utils>data_loading.py

    模块,包   在package_runoob同级目录下,用test.py调用package_runoob包中内容 参考链接: Python 模块 | 菜鸟教程 (runoob.com) Dataset ...

  8. DataTable 导出到TXT

    public static string cExportTXT(DataView dv) { try { SaveFileDialog saveFileDialog1 = new SaveFileDi ...

  9. 在创建maven项目时提示找不到插件 'org.springframework.boot:spring-boot-maven-plugin:'

    因为是版本号缺失,不过我idea自建项目没这个问题,但是从springboot官网上创建下载就出现了这个问题. 找到文件夹的打开pom.xml文件 然后找到下图位置添加版本号,我的是2.6.1 添加完 ...

  10. 7. 基础增删改 - 使用Portal Webapi进行会员信息的增删改

    我们可以通过使用Portal Web API在Portal页面中跨所有Microsoft Dataverse表执行创建.更新和删除操作,下面我们就一起来看一下如何通过使用AJAX函数来进行操作. AJ ...