黑马程序员技术交流社区

标题: 基础班第十天的心得 [打印本页]

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

//定义抽烟接口
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();
}
}


作者: 怪学究    时间: 2015-5-5 22:32
不是先定义person然后通过teacher和student继承么?
作者: 小王泽哥    时间: 2015-5-6 10:14
好长啊都     虽然表示不难
作者: 黛玉之殇    时间: 2015-5-6 10:20
= =进度差不多。。不过我是自学
作者: 薛慧彬    时间: 2015-5-6 17:53
自学中。。。。。
作者: 虎鹏    时间: 2015-5-6 18:24
牛逼!!!!!!
作者: nate996    时间: 2015-5-6 18:27
自学中。。。。。
作者: 忘言    时间: 2015-5-6 18:27
看楼主竟是我班的,来凑个热闹~~
作者: roybill    时间: 2015-5-6 18:42
准备上基础班了,大家一起加油!!!
作者: rick1991chen    时间: 2015-5-6 19:59
抽象类不是不能被继承么。。。。。
作者: zxj35986847    时间: 2015-5-6 21:11
rick1991chen 发表于 2015-5-6 19:59
抽象类不是不能被继承么。。。。。

抽象类也是类,怎么不可以被继承?
类都可以单继承,多层继承,
只是抽象类里的抽象方法要在子类中重写.才有意义.

作者: 王英明    时间: 2015-5-6 21:13
太长了!看不明白了
作者: zxj35986847    时间: 2015-5-6 21:14
楼主说, 你是哪个班的?  别告诉我你是传智播客基础Java0417的?  哈哈哈哈.

是李俊超?
作者: rick1991chen    时间: 2015-5-6 21:17
zxj35986847 发表于 2015-5-6 21:11
抽象类也是类,怎么不可以被继承?
类都可以单继承,多层继承,
只是抽象类里的抽象方法要在子类中重写.才有 ...

对,是不能创建对象,可以且必须被继承
作者: 魔蝎座    时间: 2015-5-6 21:20
顶一个!
作者: 空--格    时间: 2015-5-6 21:32
话说 现在看代码头是昏的.......
作者: gzp123    时间: 2015-5-6 21:43
抽象类就是用来被继承的
作者: zhaoweiyan    时间: 2015-5-6 21:48
你是哪一期的
作者: 高海峰186    时间: 2015-5-6 21:50
刚学到这,可以好好参考参考你的代码




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2