A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© as12510 中级黑马   /  2015-5-5 22:29  /  806 人查看  /  18 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

面向对象终于接近尾声了。
晚上写了三个案例,每次都因为构造方法要不停的写(无参构造、带全部参数构造)而烦。。。
每次继承一次都要写一次,每次实例化一个接口又要写一次。。
真心 好烦、、、、、
不过、、、还好   没在面向对象的部分落下。。
附代码:需求:实现基础班学生与老师,就业班学生与老师实例化,而且实现抽烟功能。

//定义抽烟接口
interface Smoking {
public abstract void smoking();
}
// 定义老师类 功能 教学 成员 name age
abstract class Teacher {
private String name;
private int age;
Teacher() {
}
public Teacher(String name, int age) {
  super();
  this.name = name;
  this.age = age;
}
public String getName() {
  return name;
}
public void setName(String name) {
  this.name = name;
}
public int getAge() {
  return age;
}
public void setAge(int age) {
  this.age = age;
}
abstract void teach();
}
// 定义抽象学生类 姓名 年龄 方法:学习
abstract class Student {
private String name;
private int age;
Student() {
}
public Student(String name, int age) {
  super();
  this.name = name;
  this.age = age;
}
public String getName() {
  return name;
}
public void setName(String name) {
  this.name = name;
}
public int getAge() {
  return age;
}
public void setAge(int age) {
  this.age = age;
}
abstract void study();
}
// 定义基础班老师类
class JavaSeTeacher extends Teacher {
JavaSeTeacher() {
}
public JavaSeTeacher(String name, int age) {
  super(name, age);
}
public void show() {
  System.out.println(getName() + "--" + getAge());
}
public void teach() {
  System.out.println("基础班老师讲JAVASE课程");
}
}
// 定义就业班老师类
class JavaEeTeacher extends Teacher {
JavaEeTeacher() {
}
public JavaEeTeacher(String name, int age) {
  super(name, age);
}
public void show() {
  System.out.println(getName() + "--" + getAge());
}
public void teach() {
  System.out.println("就业班老师讲JAVAEE课程");
}
}
// 定义基础班学生类
class JavaSeStudent extends Student {
JavaSeStudent() {
}
public JavaSeStudent(String name, int age) {
  super(name, age);
}
public void show() {
  System.out.println(getName() + "--" + getAge());
}
public void study() {
  System.out.println("基础班学习学JavaSE");
}
}
// 定义就业班学生类
class JavaEeStudent extends Student {
JavaEeStudent() {
}
public JavaEeStudent(String name, int age) {
  super(name, age);
}
public void show() {
  System.out.println(getName() + "--" + getAge());
}
public void study() {
  System.out.println("就业班学习学JavaEE");
}
}
// 定义抽烟类基础班老师
class JavaSeTeacherSmoking extends JavaSeTeacher implements Smoking {
JavaSeTeacherSmoking() {
}
public JavaSeTeacherSmoking(String name, int age) {
  super(name, age);
}
public void smoking() {
  System.out.println("基础班的老师在抽烟 " + "---" + "和天下");
}
}
// 定义学生类抽烟对象
class JavaEeStudentSmoking extends JavaEeStudent implements Smoking {
JavaEeStudentSmoking() {
}
public JavaEeStudentSmoking(String name, int age) {
  super(name, age);
}
public void smoking() {
  System.out.println("就业班的学生在抽烟 " + "---" + "1916");
}
}
public class ExtendsStudentTeacher {
public static void main(String[] args) {
  // JavaEeStudentSmoking js = new JavaEeStudentSmoking("老三", 24);
  JavaEeStudentSmoking js = new JavaEeStudentSmoking("老三", 24);
  js.study();
  js.show();
  js.smoking();
  JavaSeTeacherSmoking jt = new JavaSeTeacherSmoking("老四", 40);
  jt.teach();
  jt.show();
  jt.smoking();
  // JavaSeTeacherSmoking jt = new JavaSeTeacherSmoking("老四", 40);
  // jt.smoking();
}
}

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

18 个回复

倒序浏览
不是先定义person然后通过teacher和student继承么?
回复 使用道具 举报
好长啊都     虽然表示不难
回复 使用道具 举报
= =进度差不多。。不过我是自学
回复 使用道具 举报
自学中。。。。。
回复 使用道具 举报
牛逼!!!!!!
回复 使用道具 举报
自学中。。。。。
回复 使用道具 举报
看楼主竟是我班的,来凑个热闹~~
回复 使用道具 举报
准备上基础班了,大家一起加油!!!
回复 使用道具 举报
抽象类不是不能被继承么。。。。。
回复 使用道具 举报
rick1991chen 发表于 2015-5-6 19:59
抽象类不是不能被继承么。。。。。

抽象类也是类,怎么不可以被继承?
类都可以单继承,多层继承,
只是抽象类里的抽象方法要在子类中重写.才有意义.
回复 使用道具 举报
太长了!看不明白了
回复 使用道具 举报
楼主说, 你是哪个班的?  别告诉我你是传智播客基础Java0417的?  哈哈哈哈.

是李俊超?
回复 使用道具 举报
zxj35986847 发表于 2015-5-6 21:11
抽象类也是类,怎么不可以被继承?
类都可以单继承,多层继承,
只是抽象类里的抽象方法要在子类中重写.才有 ...

对,是不能创建对象,可以且必须被继承
回复 使用道具 举报 1 0
顶一个!
回复 使用道具 举报
话说 现在看代码头是昏的.......
回复 使用道具 举报
抽象类就是用来被继承的
回复 使用道具 举报
你是哪一期的
回复 使用道具 举报
刚学到这,可以好好参考参考你的代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马