继承——Person为父类,Teacher和Student都继承Person
一、题目
- 按照要求完成以下操作。
- 创建Person,Teacher,Student类
其中,Person为父类,Teacher和Student都继承Person
Person中有属性:String name,int age(自己思考访问控制修饰符)
在Person中写出无参构造方法Person(),有参构造方法Person(String name,int age)
在Person中定义方法:showMessage(),用于展示人的信息,打印输出“展示某人的信息”
- 创建Person,Teacher,Student类
- 在Teacher类中定义私有的属性:工号teacherId
定义以下构造方法:
1.无参构造方法 Teacher()
2.有参构造方法Teacher(String name,int age,Int teacherId)
该构造方法中调用父类的2个参数的构造方法
在Teachar中重写方法showMessage():在方法体中输出“老师的信息是:姓名:xx,年龄:xx,工号:xx” - 在Student类中定义私有的属性:学号schoolId
定义以下构造方法:
1.无参构造方法 Student()
2.有参构造方法Student(String name,int age,Int teacherId)
该构造方法中调用父类的2个参数的构造方法
在Student中重写方法showMessage():
在方法体中输出“学生的信息是:姓名:xx,年龄:xx,学号:xx”
二、实现代码
第一种
1.Student类
package homework;public class Student extends Person {public String name;public int age;public int schoolId;public Student() {}public Student(String name,int age,int schoolId) {this.name=name;this.age=age;this.schoolId=schoolId;} public void showMessage() {//重写方法System.out.printf("学生的信息是:姓名:"+name+" 年龄:"+age+" 学号:"+schoolId+"\n");}}
2.Teacher类
package homework;public class Teacher extends Person {public int teacherId;public String name;public int age;
public Teacher() {}public Teacher(String name,int age,int teacherId) {this.name=name;this.age=age;this.teacherId=teacherId;
}
public void showMessage() {//重写方法System.out.printf("老师的信息是:姓名:"+name+" 年龄:"+age+" 工号:"+teacherId);
}
}
3.Person类
package homework;public class Person {public static void main(String[] args) {Student s=new Student();s.schoolId=10;s.age=20;s.name="admin";s.showMessage();Teacher t=new Teacher();t.age=28;t.name="ldk";t.teacherId=12;t.showMessage();}
public void showMessage() {System.out.println("展示某人信息");
}
}
截图:
第二种
Student类
package homework;public class Student extends Person {public int schoolId;public Student() {}public Student(String name,int age,int schoolId) {super(name,age);this.schoolId=schoolId;} public void showMessage() {System.out.printf("学生的信息是:姓名:"+name+" 年龄:"+age+" 学号:"+schoolId+"\n");}}
Teacher类
package homework;public class Teacher extends Person {public int teacherId;public Teacher() {//无参构造法}public Teacher(String name,int age,int teacherId) {//有参构造super(name,age);this.teacherId=teacherId;
}
public void showMessage() {System.out.printf("老师的信息是:姓名:"+name+" 年龄:"+age+" 工号:"+teacherId+"\n");
}
}
Person类
package homework;public class Person {public String name;public int age;public Person(){}public Person(String name,int age) {this.name=name;this.age=age;}
public void showMessage() {System.out.println("展示某人信息");
}
}
Test类
package homework;public class Test {public static void main(String[] args) {Teacher t=new Teacher("ldk",21,10);t.showMessage();Student s=new Student("xd",17,1002);s.showMessage();}}
截图:
三、总结
还是存在问题,对于无参,有参的构造方法,父类与子类之间的继承,子类中的方法重写。
super(参数)的使用:调用父类的有参构造方法
//这句代码必须写在第一行
继承——Person为父类,Teacher和Student都继承Person相关推荐
- python 继承并定制父类的初始化方法,python 继承类的初始化用法
Python 中,子类B继承父类A时候会用class B(A):的代码形式声明B. class A: def __init__(self, x=1, y=2): self.x = x self.y = ...
- Python---已知Person类,继承Person类生成Teacher类(增加参数:科目)和Student类(增加参数:专业)。
题目:已知Person类,继承Person类生成Teacher类(增加参数:科目)和Student类(增加参数:专业). 已知Person类如下: class Person(object):# Per ...
- php父类继承子类_php有多态吗 多态都有什么好处?理解好多态往往能事半功倍...
一.什么是多态? 多态其实就是根据参数不同而执行不同的方法. 二.php中的多态 多态的概念一般是强类型语言来谈的,因为强类型语言它必须要声明参数类型,比如一个手电筒对象的打开方法其参数申明了只能是蓝 ...
- JAVA类的继承 Teacher和Student
JAVA类的继承 Teacher和Student 题目描述 定义一个Teacher类和一个Student类,二者有部分数据成员是相同的,例如num,name,sex. 学生有分数score,而教师有薪 ...
- 关于“继承, 子类拥有父类非private的属性和方法“
我们以前经常看到这么一句话: "继承, 子类拥有父类非 private 的属性和方法."; 但是我们又会经常看到这样的代码 父类: public class People {pr ...
- 类型转换,类与类之间的转换,继承关系,继承与静态变量,子类父类重名,多继承,虚基类
常量的基本类型转换,例如:int num(10.8),这种方式是隐式转换. 通过函数的构造函数实现转换. 类类转换函数,当构造函数不能将类型转换成基本类型时.所以就有了类类转换函数,通过这种方式 ...
- 继承能够访问父类私有字段_在单元测试中访问私有字段
继承能够访问父类私有字段 首先,让我大声说一下,您需要将代码设计为可测试的,以便通过公共方法测试私有字段. 但是,(" buts"是人们仍在编程而不是计算机本身的原因,所以在这里很 ...
- java 子类继承父类_关于Java 的继承问题,子类会继承父类的哪些东西?-----转载...
和C++类似,可以继承基类的公共属性和方法. 在Java继承里,父类的属性还有方法在声明时,如果是public关键字即公共属性,则在子类继承时,这些属性和方法都会被子类继承.受保护的也可以继承 但是私 ...
- java中子类怎样调用父类的属性_java的继承、重载(overload)、覆盖(override)的总结...
java为了解决相似属性和行为能共用相同的代码,也是为了便于标准模块化.减少相同代码要多次重复编写的问题,提供了继承.重载和覆盖的功能.继承是针对类,重载和覆盖是针对方法的. 一.继承:为了便于理解. ...
最新文章
- 为师不以学为大,不如以死谢天下
- multiprocessing多进程(31-04)创建进程的两种方式
- sybase isql 重启_学习这篇文章,搭建Sybase数据库不再是难题!
- 学会用各种方式备份MySQL数据库
- Windows平台下kafka环境的搭建
- java赋值兼容原则,多态问题抛出(赋值兼容性原则遇上父类与子类同名函数的时候)...
- C#自学总结_Day2
- 概率图模型(快速入门必备)
- python模拟ios点击_使用Xcode + Python进行IOS运动轨迹模拟
- 京东、阿里:健康版图再博弈
- qq三国行脚商脚本思路分享
- HC32L130基于Xmodem协议实现IAP串口在线升级
- Android 华为手机ADB调试连接不上的参考解决办法
- iPad如何越狱?4.2.1完美越狱教程 二 (cydia 安装)
- 基本数据结构——线性结构(列表/无序表)
- python基础(大数据)[完结]
- java 视频系统_java web电影网视频点播系统
- 计算机硬盘用u盘维修,硬盘,提示分区损坏怎么办,学会这招解决电脑硬盘分区损坏问题...
- Field xxxMapper in xxxServiceImpl required a bean of type XxxMapper解决方法
- C++构造函数私有化作用
热门文章
- 不要浪费那少得可怜的注意力(2)
- 按键精灵 百度文字识别(百度ocr)OCRSpace文字识别
- 每个人的火星快车图片和视频
- 用python做生日礼物_利用python画一份素描合集,给女朋友一份独特生日礼物
- 树莓派 编译安装OpenCV4.1.0+opencv_contrib-4.1.0
- tvOS 开发第一个tvOS应用
- 华为奔赴“空间智能”,全屋智能的逻辑变了吗?
- java实现客户端脚本录制_(二)appium-desktop录制脚本二次开发,生成我司自动化脚本...
- 基于 Openzeppelin 的可升级合约解决方案的注意事项
- Android Studio2.2 CMAKE高效NDK开发