2017.12.1T19_B2_4——2

***********************************************

package com.xdf.demo;

/**
 *  由 abstract修饰的方法====> ====》抽象方法
 *   01.必须位于抽象类中
 *   02.必须没有方法体
 *   03.必须被子类重写,除非子类也是抽象类
 *  
 *  由 abstract修饰的类====>抽象类
 *   01.可以有普通方法
 *   02.抽象类不能被实例化,但是可以有构造方法
 *  
 */
public abstract class Person {
 private int age; // 年龄
 private String name; // 姓名

 /**
  *   人类睡觉的方法
  *   子类一旦重写了这个sleep方法,当前父类的这个方法有存在的意义,
  *   但是 方法中的内容(方法体)没有存在的意义!
  *   因为Person的子类回去重写这个方法!
  *   01.去掉方法体之后,发现编译错误
  *   02.鼠标放在错误位置 出现两个选择 
  *      001.add  body   ×
  *      002.add abstract   √
  *   03.在方法上面增加了abstract之后还是报错
  *      鼠标放在错误位置 出现两个选择
  *       001.remove   abstract    ×
  *       002.make  type  Person   abstract  √
  */
 public abstract void sleep();

 public int getAge() {
  return age;
 }

 public void setAge(int age) {
  this.age = age;
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public Person(int age, String name) {
  super();
  this.age = age;
  this.name = name;
 }

 public Person() {
  super();
 }

 @Override
 public String toString() {
  return "Person [age=" + age + ", name=" + name + "]";

8888888888888888***********************************************8

package com.xdf.demo;

public class PersonDemo {

 /**
  *  Student 和 Teacher类 都去继承Person
  *  01.如果Student 和 Teacher类 都没有去重写父类的  sleep方法,
  *    那么调用sleep方法的时候,都是输出同样的语句!
  *  02.让子类去重写父类的sleep
  *   
  */
 public static void main(String[] args) {
  // 实例化两个子类的对象
  Student stu = new Student(10, "小黑");
  Teacher teacher = new Teacher(20, "小白");
  // 调用对应的睡觉方法
  stu.sleep();
  teacher.sleep();

********************************************

package com.xdf.demo;

public class Student extends Person { // 学生类

 public Student(int age, String name) {
  super(age, name);
 }

 public Student() {
  super();
 }

 @Override
 public void sleep() {
  System.out.println("学生在睡觉!!!");

************************************************

package com.xdf.demo;

public class Teacher extends Person { // 教师类

 public Teacher(int age, String name) {
  super(age, name);
 }

 public Teacher() {
  super();
 }

 @Override
 public void sleep() {
  System.out.println("教师在睡觉!!!");

原文地址:https://www.cnblogs.com/xiaoxiao1016/p/8021607.html