`
云十四月
  • 浏览: 12256 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

第五次总结(java中类的继承)

 
阅读更多

第五次总结

类的继承

优点: 提高代码重用性

语句:

public class 子类名 extends 父类名{}//java 中是单继承,即extends后边只能加一个类名

 

子类能继承到的:父类所有的属性和方法。

子类能够调用的:

      1.当子类和父类同包:默认的、受保护的、公有的属性和方法能被子类的对象和子类{}中调用。
      2.当子类和父类不同包:子类对象能调用的只有公有的属性和方法
         子类的{}中能调用的属性和方法有:公有的、受保护的

 

方法重写:
实现方法重写的条件:
      1.必须要存在继承关系
      2.返回值数据类型、方法名、参数个数、参数类型和参数顺序必须要和父类方法的完全一致。
      3.子类重写方法时,方法的访问修饰符可以大于或者等于父类方法的访问修饰符。//默认<protected<public

 

调用方法:

       会优先执行子类的方法,子类没有的时候才会执行父类的方法。
       如果想调用父类的方法,那么可以使用super.方法名();
       super(name,score);//调用父类中带两个参数的构造方法

 

自动转型:

       值传递中,将一个范围较小的类型的变量的数值赋给一个范围较大的类型的变量。如int a=byte b;

       引用传递中,将子类对象赋予一个父类对象也属于自动转型。

##对于引用传递,java中自动转型造成的问题,无法调用子类自己定义的方法。

##那么这种自动转型存在的意义为何?

##答:扩大类的使用范围。

例子:如果一个老师是大学老师,那么他也将足以胜任高中、初中、小学课程的授课。

 

.练习
 1.回合制游戏:奥特曼和小怪兽要战斗,直到一方的血量为0的时候结束战斗,输出谁胜利了!
  奥特曼除了可以打小怪兽外,还可以攻击其他的奥特曼对象。
  小怪兽除了可以打奥特曼外,还可以攻击其他的小怪兽对象。
  

 

####################先定义一个表示参与者的Player类######################

public class Player {
 private int blood ;
 private String name;

//初始化血量的方法
 public int  initBlood(int bl)
 {
  this.blood=bl;
  return this.blood;
 }
 public void setName(String na){
  name = na;
 }
 //查看名字方法
  public String getName(){
   return this.name;
  }
 //掉血方法
 public void setBlood(int de){
  this.blood = this.blood-de;
 }
 //查看血量方法
 public int getBlood(){
  return this.blood;
 }
 //戰鬥方法
 public void fight(int n,Player p){
  switch(n){
   case 48:
    System.out.println(this.name+"Miss..      "+p.name+"血槽:"+this.blood);
    break;
   case 49:
    p.setBlood(100);
    System.out.println(this.name+"给了"+p.name+"一击,伤害100!     "+p.name+"血槽:"+this.blood);
    break;
   case 50:
    p.setBlood(200);
    System.out.println(this.name+"给了"+p.name+"一!!暴击!!伤害200!!!     "+p.name+"血槽:"+this.blood);
    break;
    }
  }
}

#####################定义一个表示奥特曼的Ultraman子类继承Player####################

public class Ultraman extends Player{
 public Ultraman(String na) {
  setName(na);
 }
}

 

#####################定义一个表示怪兽的Monster子类继承Player###################

public class Monster extends Player{
 public Monster(String na) {
  setName(na);
 }
}

 

#####################定义程序入口主函数###################

package cn.myy.study0720;

public class Game {
 public static void main(String [] args){
    Ultraman ul=new Ultraman("奧特曼");//定义一个奥特曼类型的对象
    Monster mo=new Monster("小怪兽");//再定义一个怪兽类型的对象
    Ultraman ulb=new Ultraman ("坏的奥特曼");//再定义一个奥特曼类型的对象
    Monster mo2=new Monster("大怪兽");//再定义一个大怪兽
    ul.initBlood(1000);
    mo.initBlood(1000);
    Game.begin(ul,mo);//奥特曼打小怪兽
    ul.initBlood(1000);
    ulb.initBlood(1000);
    Game.begin(ul,ulb);//奥特曼打坏的奥特曼
    mo.initBlood(1000);
    mo2.initBlood(1000);
   Game.begin(mo, mo2);//小怪兽打大怪兽


}
 static void begin(Player p1,Player p2)
 {
  String s="10121112011121111111112";//以一个字符串模拟随机的格斗 状态
  for(int i=0;i<s.length();i++){
   if(p1.getBlood() > 0 && p2.getBlood() > 0){//血槽均不为0的状态 下
    if((i % 2 )== 0){//奇偶数体现轮流的回合制
     p1.fight((int)s.charAt(i),p2);}
   else{
    p2.fight((int)s.charAt(i),p1);}
   }
 }
 if(p1.getBlood() <= 0){System.out.println(p1.getName()+"挂了,"+p2.getName()+"胜利%>_<%");}
 if(p2.getBlood() <= 0){System.out.println(p2.getName()+"挂了,"+p1.getName()+"胜利O(∩_∩)O");}
 }
}

 

分享到:
评论

相关推荐

    第五章_Java类的继承、包及接口

    Java 类的继承、包及接口是Java编程中的核心概念,它们是构建复杂应用程序的基础。类的继承允许我们创建一个新的类,这个新类基于已存在的类(称为父类或超类),并可以添加新的特性和方法,或者修改父类的行为。这...

    第5章-Java类的继承、抽象类和接口.doc

    在本章中,我们将详细介绍 Java 中的类继承、抽象类和接口这些重要概念。 类继承 类继承是面向对象编程的重要特点之一,它使得能够在已有的类的基础上构造新的类,新类除了具有被继承类的属性和方法外,还可以根据...

    java oop理论(继承)

    在Java面向对象编程(OOP)中,**继承**(Inheritance)是一种强大的机制,它允许一个类(子类或派生类)继承另一个类(父类或基类)的属性和方法。这种机制可以有效地复用代码,并且支持类之间的层次结构。 #### 二、...

    Java第三次作业 Java第三次作业

    【Java第三次作业】是针对Java编程语言的一次学习任务,主要涵盖了Java的基础概念、语法以及程序设计的基本思想。从描述中的“Java作业”可以推测,这次作业可能涉及到以下几个关键知识点: 1. **基础语法**:Java...

    Java中类的概念理解及相关实例

    Java中的类还可以支持继承机制。继承允许我们创建一个新类,该类继承了现有类的所有属性和方法。子类可以覆盖或扩展父类的功能,从而实现代码重用和模块化。 ##### 5.1 继承的基本语法 继承可以通过使用关键字 `...

    Java继承习题

    ### Java继承习题知识点解析 #### 一、基础概念与选择题分析 1. **final修饰的方法** - **题目**: 若在某一个类定义中定义有如下的方法:`final void workDial()`该方法属于 - A. 本地方法 - B. 最终方法 - C....

    Java语言程序设计ppt第十一章(继承和多态)

    Java语言程序设计ppt第十一章(继承和多态) 本章节主要讲解Java语言中的继承和多态机制,包括继承的定义、继承的应用、多态性和动态绑定等知识点。 一、继承的定义 继承是一种机制,允许一个类继承另一个类的...

    JAVA语言程序设计-第七章 类的封装、多态和继承

    **Java语言程序设计-第七章 类的封装、多态和继承** 在Java编程语言中,类的封装、多态和继承是面向对象编程的三大核心特性。这些概念为软件开发提供了强大的抽象能力和代码复用机制,使得程序设计更加灵活、高效。...

    JAVA继承_接口_抽象类等练习.doc

    **选择题示例:** 第5题中,正确答案是D选项:“int x(int a, int b) { return a - b; }”。这是因为该选项正确地指定了方法的返回类型、参数列表以及方法体。 ### 6. 包导入 **概念:** Java中使用`import`语句来...

    java继承与多态教学及练习

    1继承的概念 2继承的实现 3变量隐藏与方法覆盖 4super关键字 5 子类的构造顺序 6Object类 7 final关键字

    JAVA面向对象基础测试题-继承-封装-多态等测试题.docx

    **解析**:在这个例子中,Java 中不允许在同一类中有两个方法具有相同的名称和相同的签名。签名不仅包括方法名,还包括其参数列表。因此,第二个 `find` 方法与第一个 `find` 方法的签名相同,会导致编译错误。正确...

    第5章 继承与多态 java编程

    【第5章 继承与多态】 在Java编程中,继承和多态是面向对象设计的核心特性。继承性允许创建新的类(子类)基于现有的类(父类),从而实现代码复用,提高软件的可扩展性和可维护性。多态性则是指一个接口可以有不同...

    java入门经典第五章

    7. **字符串处理**:String类是Java中常用的类之一,第五章可能介绍字符串的创建、比较、拼接、查找和替换等操作,以及正则表达式在字符串处理中的应用。 8. **接口与内部类**:接口是Java中实现多继承的方式,用于...

    Java教学大纲总结

    ### 第五章 标准类库 * Java 程序包的结构 * 几个重要的类 ### 第六章 图形用户界面与事件处理 * Java GUI 编程 * AWT 绘图的主要方法 * 基于 Swing 组件的 GUI 编程 * 图形组件的布局和管理 * Java 的事件处理...

    黑马程序员入学Java精华总结

    ### 黑马程序员入学Java精华总结 #### 一、Java概述与基础知识 1. **何为编程?** - 编程是指通过编写计算机能够理解的指令来解决问题或完成特定任务的过程。这些指令通常被组织成算法,并使用某种编程语言实现。...

    java中的继承(子类调用父类构造方法还不懂).doc

    ### Java中的继承(子类调用父类构造方法) #### 一、继承的基本概念 Java是一种支持面向对象编程的语言,其中“继承”是一项核心特性。继承允许创建一个新的类(称为子类或派生类),该类继承了现有类(称为父类...

    java 2实用教程第四版_第5章_之类与继承

    java 2实用教程第四版_第5章_之类与继承 与教材同步,是自学的很好的一个PPT文件

    Java面向对象总结

    5. **如果要在子类的构造方法中显式调用父类的构造方法**:使用`super(参数列表)`,且该语句必须位于子类构造方法的第一行。这样可以确保父类构造方法被正确调用,初始化父类的数据成员。 #### 二、多态 多态是...

    JAVA基础语法总结

    这篇总结将深入探讨Java的基础语法,帮助初学者理解并掌握Java编程的核心概念。 **1. Java程序结构** Java程序由类(Class)组成,每个类都包含方法(Method)。程序执行始于main方法。例如: ```java public class...

Global site tag (gtag.js) - Google Analytics