继承、重写方法-电子宠物系统

 1 package com.szxs.pet;
 2 /**
 3  * 父类 :宠物类
 4  * @author
 5  *
 6  */
 7 public class Pet {
 8     private String name; // 宠物名字
 9     private int health; // 宠物健康值
10     private int love; // 宠物亲密度
11
12     public String getName() {
13         return name;
14     }
15
16     public void setName(String name) {
17         this.name = name;
18     }
19
20     public int getHealth() {
21         return health;
22     }
23
24     public Pet() {
25     }
26
27     public Pet(String name, int health, int love) {
28         this.name = name;
29         this.health = health;
30         this.love = love;
31     }
32
33     public void setHealth(int health) {
34         if (health < 0 || health > 100) {
35             System.out.println("健康值应该在0至100之间,默认值为60。");
36             this.health = 60;
37             return;
38         }
39         this.health = health;
40     }
41
42     public int getLove() {
43         return love;
44     }
45
46     public void setLove(int love) {
47         if (love < 0 || love > 100) {
48             System.out.println("亲密度应该在0至100之间,默认值为60。");
49             this.love = 60;
50             return;
51         }
52         this.love = love;
53     }
54
55     //宠物自白方法
56     public void print() {
57         System.out.println("宠物的自白:\n我的名字叫" + name + ",健康值是" + health + ",和主人亲密度是" + love);
58     }
59 }
 1 package com.szxs.pet;
 2 /**
 3  * 子类:狗狗类
 4  * @author
 5  *
 6  */
 7 public class Dog extends Pet {
 8     private String strain;  //狗狗品种
 9
10     public String getStrain() {
11         return strain;
12     }
13
14     public void setStrain(String strain) {
15         this.strain = strain;
16     }
17
18     public Dog(){}
19
20     public Dog(String name,int health,int love,String strain) {
21         super(name, health, love);
22         this.strain = strain;
23     }
24
25     //重写父类宠物自白方法
26     public void print() {
27         super.print();
28         System.out.println("我是一只"+strain+"。");
29     }
30 }
 1 package com.szxs.pet;
 2 /**
 3  * 子类:企鹅类
 4  * @author
 5  *
 6  */
 7 public class Penguin extends Pet {
 8     private String sex; //性别
 9
10     public String getSex() {
11         return sex;
12     }
13
14     public void setSex(String sex) {
15         this.sex = sex;
16     }
17
18     public Penguin() {}
19
20     public Penguin(String name, int health, int love,String sex) {
21         super(name, health, love);
22         this.sex=sex;
23     }
24
25     //重写父类宠物自白方法
26     public void print() {
27         super.print();
28         System.out.println("我的性别是"+sex+"。");
29     }
30 }
 1 package com.szxs.pet;
 2
 3
 4 public class TestPet {
 5
 6     public static void main(String[] args) {
 7         Dog dog=new Dog("欧欧",80,30,"拉布拉多犬");
 8         Penguin pg=new Penguin("楠楠",100,70,"Q仔");
 9         dog.print();
10         pg.print();
11     }
12
13 }

原文地址:https://www.cnblogs.com/baichang/p/10073714.html

时间: 2024-08-02 18:44:47

继承、重写方法-电子宠物系统的相关文章

PHP对象4: final 不允许重写方法或不允许继承类

final用在方法中,能继承方法, 不允许重写方法 final用在类声名中, 此类就不能继承 <?php class A{ final function say(){ say 'Ok<br />'; } } class extends A{ } final calss C{ }

JAVA中继承时方法的重载(overload)与重写/覆写(override)

JAVA继承时方法的重载(overload)与重写/覆写(override) 重载-Override 函数的方法参数个数或类型不一致,称为方法的重载. 从含义上说,只要求参数的个数或参数的类型不一致就说两个函数是重载函数,而至于返回值是否一样,没关系.同时,重载可以发生在同一个类中也可以发生在继承关系中. class A { } class B extends A { public void fun(String data1) { System.out.println(data1); } pub

【java】Java的继承,方法重写,访问权限

继承 **首先面向对象的三大特性: 1. 封装 2. 继承 3. 多态** 语法 class Subclass extends Superclass{ } 作用 继承的出现提高了代码的复用性. 继承的出现让类与类之间产生了关系,提供了多态的前提. 不要仅为了获取其他类中某个功能而去继承 例子 class Person { String name; int age; } /*继承与Person类*/ class Student extends Person { int weight; } Stud

第七天 继承之方法重写

方法重写又称方法覆盖java中子类可以继承父类中的方法,而不需要重新编写相同的方法.但有时子类并不想原封不动的继承父类的方法而是想做一定的修改,着时候就需要采用方法的重写 方法覆盖的注意事项: 1权限:子类的的权限(访问修饰符)一定要不小于被重新的方法的权限(访问修饰符) 2方法定义:方法名和参数列表必须一样 3返回值:基本数据类型:子类和父类的必须一置 引用数据类型:子类可以与父类相同也可以是父类的子类 4抛出异常:子类抛出的异常不能超过父亲抛出的异常(子类的异常不能大于父类的异常) 5不能被

04 Python的继承、方法重写、super()类

继承 A类继承B类,A即可获得B类的全部公共属性和方法.格式如:class A(B): class Animal: def sleep(self): print("zZZ...") def eat(self): print("yamiyami...") def run(self): print("huchihuchi...") class Dog(Animal): #Dog类拥有sleep,eat,run,bark四个方法 def bark(se

跟王老师学接口:(五)实例:对电子宠物系统进行重构

对电子宠物系统进行重构 主讲教师:王少华   QQ群号:483773664 一.重构需求 定义Eatable接口,在接口中定义eat()方法,表示吃饭功能 定义FlyingDiscCatchable接口,在接口中定义catchingFlyDisc()方法,表示接飞盘功能 定义Swimmable接口,在接口中定义swim()方法,表示游戏功能 定义抽象类Pet,包括宠物名称(name).健康值(health)和与主人亲密度(love)属性,并提供抽象方法print(),用来输出宠物信息 定义狗类(

07.28 关键字 继承 重写 知识点梳理

static关键字被static修饰的成员变量和成员方法独立于该类的任何对象,它不依赖类特定的实例,被类的所有实例共享. 当创建对象后,成员变量是存储在堆中的,而static成员变量和类的信息一起存储在方法区, 而不是在堆中.static修饰的成员变量和成员方法习惯上称为静态变量和静态方法,可以直接通过类名来访问访问方式: 类名.类变量 或者 实例名.类变量double c = Math.sqrt(3.0 * 3.0 + 4.0 * 4.0); super关键字super必须是子类构造方法的第一

继承和方法重载

1.一个子类的对象可以向上造型为父类的类型.即,定义父类型的引用可以指向子类的对象 2.父类的引用可以指向子类的对象,但通过父类的引用只能访问父类所定义的成员,不能访问子类扩展的部分. 3.子类可以重写(覆盖)继承自父类的方法,即方法名和参数列表与父类的方法相同:但方法的实现不同. 4.当子类对象的重写方法被调用时(无论是通过子类的引用调用还是通过父类的引用调用),运行的是子类的重写后的版本.

Swift 2.0学习笔记(Day 45)——重写方法

?? 原创文章,欢迎转载.转载请注明:关东升的博客 重写实例方法 在子类中重写从父类继承来的实例方法和静态方法.先介绍实例方法的重写. 下面看一个示例: class Person { var name: String var age: Int func description() -> String { //实例方法 return "\(name) 年龄是: \(age)" } class func printClass() ->() { //静态方法 print( &qu