第1关:封装、继承和多态进阶(一)
测试说明
测试输入:
泰迪
male
brown
波斯猫
male
2.5
预期输出:
名称:泰迪,性别:male,颜色:brown,汪汪叫
泰迪吃骨头!
名称:波斯猫,性别:male,体重:2.5kg,喵喵叫
波斯猫吃鱼!
开始你的任务吧,祝你成功!
//package case1;import java.util.Scanner;public class Task1 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String dogName = sc.next();String dogSex = sc.next();String dogColor = sc.next();String catName = sc.next();String catSex = sc.next();double catWeight = sc.nextDouble();// 通过有参构造函数实例化Dog类对象dog// dog调用talk()方法// dog调用eat()方法/********* begin *********/Dog dog=new Dog(dogName,dogSex,dogColor);System.out.print(dog.toString());dog.talk();dog.eat();/********* end *********/// 通过有参构造函数实例化Cat类对象cat// cat调用talk()方法// cat调用eat()方法/********* begin *********/Cat cat=new Cat(catName,catSex,catWeight);System.out.print(cat.toString());cat.talk();cat.eat();/********* end *********/}
}// 抽象类Pet 封装属性name和sex
// 构造函数初始化name和sex
// 声明抽象方法talk()
// 声明抽象方法eat()
abstract class Pet {/********* begin *********/private String name;private String sex;public Pet(String name, String sex) {super();this.name = name;this.sex = sex;}public String getName() {return name;}public String getSex() {return sex;}abstract void talk();abstract void eat();/********* end *********/
}// Dog类继承自Pet类 封装属性color
// 构造函数初始化name、sex和color
// 实现自己的talk()方法和eat()方法
// talk()输出'名称:name,性别:sex,颜色:color,汪汪叫'
// eat()输出'name吃骨头'
class Dog extends Pet {private String color;public Dog(String name, String sex, String color) {super(name, sex);this.color = color;}void talk() {// TODO Auto-generated method stubSystem.out.println("汪汪叫");}void eat() {// TODO Auto-generated method stubSystem.out.println(getName()+"吃骨头!");}public String getColor() {return color;}public String toString() {return String.format("名称:%s,性别:%s,颜色:%s,",getName(),getSex(),color);}}// Cat类继承自Pet类 封装属性weight
// 构造函数初始化name、sex和weight
// 实现自己的talk()方法和eat()方法
// talk()输出'名称:name,性别:sex,体重:weight kg,喵喵叫'
// eat()输出'name吃鱼'
class Cat extends Pet {private double weight;public Cat(String name, String sex, double weight) {super(name, sex);this.weight=weight;}void talk() {// TODO Auto-generated method stubSystem.out.println("喵喵叫");}void eat() {// TODO Auto-generated method stubSystem.out.println(getName()+"吃鱼!");}public double getWeight() {return weight;}public String toString() {return String.format("名称:%s,性别:%s,体重:%.1fkg,",getName(),getSex(),weight);}}
第1关:封装、继承和多态进阶(一)相关推荐
- java 继承重写_java 封装 继承 重写 多态
封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 好处: 将变化隔离.便于使用.提高重用性.提高安全性 封装原则: 将不需要对外提供的内容都隐藏起来.把属性都隐藏,提供公共方法对其访问. ...
- 面向对象 详解笔记 方法 类 对象 封装 继承 重写 多态 接口
文章目录 面向过程&面向对象 面向过程 面向对象 什么是面向对象 回顾方法及加深 方法的定义 修饰符 返回类型 break:跳出switch,结束循环和return的区别 方法名:注意规范就o ...
- 本质论之封装继承和多态的介绍
关于 类,我有一些话想说 说到类那就说到了面向对象的灵魂了,没有它也就没有了封装.继承and多态这些东西了.我还记得在读研期间每次看到这些都望而却步,甚至我搞不懂对象和类的区别(这里防止有人也不知道区 ...
- 黑马程序员_JAVA之面向对象(封装,继承和多态)
------- android培训.java培训.期待与您交流!---------- 面向对象 一.面向对象概述 定义: 面向对象(Object Oriented,OO)是软件开过过程中使用一种思维方 ...
- Java回顾 封装 继承和多态
封装 什么是封装 封装:就是隐藏对象的属性和实现细节,仅对外提供公共访问方式. 封装时的权限控制符区别如下: 封装的意义 对于封装而言,一个对象它所封装的是自己的属性和方法,所以它是不需要依赖其他对象 ...
- java 封装 继承和多态
2019独角兽企业重金招聘Python工程师标准>>> 多态无处不在.引用的概念最为困难.理解了引用才能理解多态的意义以及应用. 多态的应用的一大前提是继承.以及继承中的重写方法.继 ...
- python类与对象 封装继承与多态 0308
类与对象 初始化方法 init方法 带参实例化类 del方法 str方法 私有 继承 方法的重写 super 父类名称调父类方法 调用父类私有 间接调用 多继承 新式类经曲类 多态 类属性 类方法 静 ...
- 头歌实践实践教学平台:Java面向对象 - 封装、继承和多态的综合练习
第1关:封装.继承和多态进阶(一) 任务描述 本关任务:按要求编写一个Java应用程序,巩固Java面向对象知识. 相关知识 为了完成本关任务,我们回顾一下前面所学知识:1.面向对象思想 :2.封装: ...
- 07 面向对象编程-结构、封装、继承、多态、接口
文章目录 Struct定义 struct 方法 工厂模式 面向对象三大特性 封装 继承 接口 多态 Golang支持面向对象编程,但是和传统面向对象有区别,并不是纯粹面向对象的语言,只能说Golang ...
最新文章
- 更新 Ubuntu 系统,避免报错「校验和不符」
- JVM专题(2)-类加载器子系统
- 通过简单例子 | 快速理清 UML类图中六大关系
- mt4虚拟服务器在哪里看,mt4查看自己服务器地址
- Android studio git 本地仓库和远程仓库节点对比
- [tomcat]-tomcat8启动时SessionIdGeneratorBase.createSecureRandom耗时
- CTP 客户端 技术相关 简介 一
- Flutter AnimatedContainer 动画使用解析
- JAVA注释 关键字 标识符 常量 变量 数据类型 大小 类型转换 字符类型 (算术 赋值 自增自减 比较 逻辑短路现象 位移 三元) 运算符
- 区分QA和QC, Verification和Validation
- [附源码]java+ssm计算机毕业设计交通违章举报平台lxsqm(源码+程序+数据库+部署)
- 关于DrawerLayout must be measured with MeasureSpec.EXACTLY问题解决办法
- 基于JAVA动漫网站和特效处理系统(Springboot框架+AI人工智能) 开题报告
- Caliburn.Micro中的Screen和Conductor
- csdn简单设置字体颜色
- 配置管理工程师就职要求
- Win10系统从sata转移到nvme无法启动问题处理
- 前端笔记之React(六)ES6的Set和Mapimmutable和Ramda和lodashredux-thunk
- Android10 wifi AP功能
- 优化Recorder H5录音:可边录边转码上传服务器,支持微信提供Android IOS Hybrid App源码