黑马程序员技术交流社区

标题: 【记录】代码练习-抽象类 [打印本页]

作者: Kevin.Kang    时间: 2015-6-29 23:04
标题: 【记录】代码练习-抽象类
本帖最后由 Kevin.Kang 于 2015-6-30 10:11 编辑
  1. abstract class Animal
  2. {
  3.         private String name;
  4.         private int age;
  5.         public Animal(){}
  6.         public Animal(String name, int age)
  7.         {
  8.                 this.name = name;
  9.                 this.age = age;
  10.         }
  11.         public String getName()
  12.         {
  13.                 return name;
  14.         }
  15.         public void setName(String name)
  16.         {
  17.                 this.name = name;
  18.         }
  19.         public int getAge()
  20.         {
  21.                 return age;
  22.         }
  23.         public void setAge(int age)
  24.         {
  25.                 this.age = age;
  26.         }
  27.         public abstract void eat();
  28. }

  29. class Dog extends Animal
  30. {
  31.         public Dog(){}
  32.         public Dog(String name, int age)
  33.         {
  34.                 super(name,age);
  35.         }
  36.         public void eat()
  37.         {
  38.                 System.out.println("狗吃肉");
  39.         }
  40. }

  41. class Cat extends Animal
  42. {
  43.         public Cat(){}
  44.         public Cat(String name, int age)
  45.         {
  46.                 super(name,age);
  47.         }
  48.         public void eat()
  49.         {
  50.                 System.out.println("猫吃鱼");
  51.         }
  52. }

  53. class AbstractTest
  54. {
  55.         public static void main (String [] args)
  56.         {
  57.                 //狗类
  58.                 //方式1
  59.                 Dog d = new Dog();
  60.                 d.setName("旺财");
  61.                 d.setAge(2);
  62.                 System.out.println(d.getName()+":"+d.getAge());
  63.                 d.eat();
  64.                 System.out.println("==============");
  65.                 //方式2
  66.                 Dog d2 = new Dog("大黄",3);
  67.                 System.out.println(d2.getName()+":"+d2.getAge());
  68.                 d2.eat();
  69.                 System.out.println("==============");
  70.                 //方式3
  71.                 Animal d3 = new Dog();
  72.                 d3.setName("汪汪");
  73.                 d3.setAge(1);
  74.                 System.out.println(d3.getName()+":"+d3.getAge());
  75.                 d3.eat();
  76.                 System.out.println("==============");
  77.                 //方式4
  78.                 Animal d4 = new Dog("旭狗",4);
  79.                 System.out.println(d3.getName()+":"+d3.getAge());
  80.                 d3.eat();
  81.                 System.out.println("--------------");

  82.                 //猫类
  83.                 //方式1
  84.                 Cat c = new Cat();
  85.                 c.setName("喵喵");
  86.                 c.setAge(1);
  87.                 System.out.println(c.getName()+":"+c.getAge());
  88.                 c.eat();
  89.                 System.out.println("==============");
  90.                 //方式2
  91.                 Cat c2 = new Cat("小喵",2);
  92.                 System.out.println(c2.getName()+":"+c2.getAge());
  93.                 c2.eat();
  94.                 System.out.println("==============");
  95.                 //方式3
  96.                 Animal c3 = new Cat();
  97.                 c3.setName("大喵");
  98.                 c3.setAge(3);
  99.                 System.out.println(c3.getName()+":"+c3.getAge());
  100.                 c3.eat();
  101.                 System.out.println("==============");
  102.                 //方式4
  103.                 Animal c4 = new Cat("Kitty",4);
  104.                 System.out.println(c4.getName()+":"+c4.getAge());
  105.                 c4.eat();
  106.         }
  107. }
复制代码


作者: micro_hx    时间: 2015-6-29 23:07
对于实现类,在构造器中,我没有写supper方法,会不会报错啊???
作者: Kevin.Kang    时间: 2015-6-30 10:11
  1. //老师类练习
  2. abstract class Person
  3. {
  4.         private String name;
  5.         private int age;
  6.         public Person(){}
  7.         public Person(String name, int age)
  8.         {
  9.                 this.name = name;
  10.                 this.age = age;
  11.         }
  12.         public String getName()
  13.         {
  14.                 return name;
  15.         }
  16.         public void setName(String name)
  17.         {
  18.                 this.name = name;
  19.         }
  20.         public int getAge()
  21.         {
  22.                 return age;
  23.         }
  24.         public void setAge(int age)
  25.         {
  26.                 this.age = age;
  27.         }
  28.         public abstract void work();
  29. }

  30. class BasicTeacher extends Person
  31. {
  32.         public BasicTeacher(){}
  33.         public BasicTeacher(String name, int age)
  34.         {
  35.                 super(name,age);
  36.         }
  37.         public void work()
  38.         {
  39.                 System.out.println("讲解javaSE");
  40.         }
  41. }

  42. class WorkTeacher extends Person
  43. {
  44.         public WorkTeacher(){}
  45.         public WorkTeacher(String name, int age)
  46.         {
  47.                 super(name,age);
  48.         }
  49.         public void work()
  50.         {
  51.                 System.out.println("讲解javaEE");
  52.         }
  53. }

  54. class AbstractTest2
  55. {
  56.         public static void main (String [] args)
  57.         {
  58.                 Person p = new BasicTeacher("刘意",40);
  59.                 System.out.println(p.getName()+":"+p.getAge());
  60.                 p.work();

  61.                 Person p2 = new WorkTeacher("张孝祥",45);
  62.                 System.out.println(p2.getName()+":"+p2.getAge());
  63.                 p2.work();
  64.         }
  65. }
复制代码

作者: Kevin.Kang    时间: 2015-6-30 14:49
  1. abstract class Student
  2. {
  3.         private String name;
  4.         private int age;
  5.         private String grand;
  6.         public Student(){}
  7.         public Student(String name, int age, String grand)
  8.         {
  9.                 this.name = name;
  10.                 this.age = age;
  11.                 this.grand = grand;
  12.         }
  13.         public String getName()
  14.         {
  15.                 return name;
  16.         }
  17.         public void setName(String name)
  18.         {
  19.                 this.name = name;
  20.         }
  21.         public int getAge()
  22.         {
  23.                 return age;
  24.         }
  25.         public void setAge(int age)
  26.         {
  27.                 this.age = age;
  28.         }
  29.         public String getGrand()
  30.         {
  31.                 return grand;
  32.         }
  33.         public void setGrand(String grand)
  34.         {
  35.                 this.grand = grand;
  36.         }
  37.         public abstract void study();
  38.         public void eat()
  39.         {
  40.                 System.out.println("学习饿了,去吃饭");
  41.         }
  42. }

  43. class BasicStudent extends Student
  44. {
  45.         public BasicStudent(){}
  46.         public BasicStudent(String name, int age, String grand)
  47.         {
  48.                 super(name,age,grand);
  49.         }
  50.         public void study()
  51.         {
  52.                 System.out.println("基础班学员学习JavaSE");
  53.         }
  54. }

  55. class WorkStudent extends Student
  56. {
  57.         public WorkStudent(){}
  58.         public WorkStudent(String name, int age, String grand)
  59.         {
  60.                 super(name,age,grand);
  61.         }
  62.         public void study()
  63.         {
  64.                 System.out.println("就业班学员学习JavaEE");
  65.         }
  66. }

  67. class AbstractTest3
  68. {
  69.         public static void main (String [] args)
  70.         {
  71.                 Student s = new BasicStudent("李延旭",20,"基础班");
  72.                 System.out.println(s.getName()+":"+s.getAge()+":"+s.getGrand());
  73.                 s.study();
  74.                 s.eat();

  75.                 System.out.println("==============");

  76.                 Student s2 = new WorkStudent("任兴亚",23,"就业班");
  77.                 System.out.println(s2.getName()+":"+s2.getAge()+":"+s2.getGrand());
  78.                 s2.study();
  79.                 s2.eat();
  80.         }
  81. }
复制代码

作者: Kevin.Kang    时间: 2015-6-30 15:58
  1. abstract class YuanGong
  2. {
  3.         private String name;
  4.         private String id;
  5.         private int salary;
  6.         public YuanGong(){}
  7.         public YuanGong(String name, String id, int salary)
  8.         {
  9.                 this.name = name;
  10.                 this.id = id;
  11.                 this.salary = salary;
  12.         }
  13.         public String getName()
  14.         {
  15.                 return name;
  16.         }
  17.         public void setName(String name)
  18.         {
  19.                 this.name = name;
  20.         }
  21.         public String getId()
  22.         {
  23.                 return id;
  24.         }
  25.         public void setId(String id)
  26.         {
  27.                 this.id = id;
  28.         }
  29.         public int getSalary()
  30.         {
  31.                 return salary;
  32.         }
  33.         public void setSalary(int salary)
  34.         {
  35.                 this.salary = salary;
  36.         }
  37.         public abstract void work();

  38. }

  39. class Worker extends YuanGong
  40. {
  41.         public Worker(){}
  42.         public Worker(String name, String id, int salary)
  43.         {
  44.                 super(name,id,salary);
  45.         }
  46.         public void work()
  47.         {
  48.                 System.out.println("按照需求写代码");
  49.         }
  50. }
  51. class Manager extends YuanGong
  52. {
  53.         private int money;
  54.         public Manager(){}
  55.         public Manager(String name, String id, int salary, int money)
  56.         {
  57.                 super(name,id,salary);
  58.                 this.money = money;
  59.         }
  60.         public int getMoney()
  61.         {
  62.                 return money;
  63.         }
  64.         public void setMoney(int money)
  65.         {
  66.                 this.money = money;
  67.         }
  68.                 public void work()
  69.         {
  70.                 System.out.println("跟客户谈需求");
  71.         }
  72. }

  73. class AbstractTest4
  74. {
  75.         public static void main (String [] args)
  76.         {
  77.                 YuanGong y = new Worker("小明","00002",15000);
  78.                 System.out.println(y.getName()+":"+y.getId()+":"+y.getSalary());
  79.                 y.work();

  80.                 System.out.println("===================");

  81.                 Manager y2 = new Manager("大明","00001",20000,10000);
  82.                 System.out.println(y2.getName()+":"+y2.getId()+":"+y2.getSalary()+":"+y2.getMoney());
  83.                 y2.work();
  84.         }
  85. }
复制代码

作者: 为明天而奋斗    时间: 2015-6-30 17:18
感觉好难哦




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