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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Ethan丶 中级黑马   /  2015-9-18 00:02  /  315 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package com.itheima;
/*
* Complex Interface and Inheritance
*/
//TEST
public class Test8 {
        public static void main(String[] args) {
                // test Athlete
                PingPanger pp = new PingPanger();  //no parameter
                PingPanger pp1 = new PingPanger("Wanghao",24); // parameter
                pp.setName("Lining");
                pp.setAge(28);
                System.out.println(pp.getName()+"--"+pp.getAge());
                System.out.println(pp1.getName()+"--"+pp1.getAge());
                pp.eat();
                pp.sleep();
                pp.study();
                pp1.eat();
                pp1.sleep();
                pp1.study();
                pp.OralEnglish();
                pp1.OralEnglish();
                System.out.println("--------------");

                BasketBaller bb = new BasketBaller();  //no parameter
                BasketBaller bb1 = new BasketBaller("Yaoming",32); // parameter
                bb.setName("Kobe");
                bb.setAge(35);
                System.out.println(bb.getName()+"--"+bb.getAge());
                System.out.println(bb1.getName()+"--"+bb1.getAge());
                bb.eat();
                bb.sleep();
                bb.study();
                bb1.eat();
                bb1.sleep();
                bb1.study();
                bb.OralEnglish();
                bb1.OralEnglish();
                System.out.println("--------------");
                // test Coach
        }
}
// define a abstract Person
abstract class Personer {
        private String name;
        private int age;
        public Personer(){}
        public Personer(String name, int age) {
                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;
        }
        public abstract void eat();  //abstract
        public void sleep(){
                System.out.println("Everyone like sleep for taking a rest");
        }
}
// Athlete
abstract class Athlete extends Personer {
        public Athlete(){}
        public Athlete(String name,int age){
                super(name,age);
        }
        public void study(){
                System.out.println("Processing further more through their coachs");
        }
}
// Coach
abstract class Coach extends Personer {
        public Coach(){}
        public Coach(String name,int age){
                super(name,age); // extends Person
        }
        public void teach(){
                System.out.println("Coach teach who follows his way of success");
        }
}
interface English {
        public abstract void OralEnglish();  //define a interface of OralEnglish
}
class PingPanger extends Athlete implements English{
        public PingPanger(){}
        public PingPanger(String name,int age){
                super(name,age); // extends Person
        }
        public void eat(){
                System.out.println("PP eat vegetables and rice");
        }
        public void study(){
                System.out.println("PP learn how to shoot the ball");
        }
        public void OralEnglish(){
                System.out.println("learning PPEnglish");  //PP study ppEnglish
        }
}
class BasketBaller extends Athlete implements English{
        public BasketBaller(){}
        public BasketBaller(String name,int age){
                super(name,age);// extends Person
        }
        public void eat(){
                System.out.println("BB eat hamburger and buff");
        }
        public void study(){
                System.out.println("BB learn how to movate the ball");
        }
        public void OralEnglish(){
                System.out.println("learning BBEnglish"); //BB study ppEnglish
        }
}
class PingPangCoach extends Athlete implements English{
        public PingPangCoach(){}
        public PingPangCoach(String name,int age){
                super(name,age); // extends Person
        }
        public void eat(){
                System.out.println("PPer eat banana and watermelon");
        }
        public void study(){
                System.out.println("PPer learn how to teach shoot the PingPang");
        }
        public void OralEnglish(){
                System.out.println("learning PPEnglish");  //PP study ppEnglish
        }
}
class BasketBallCoach extends Athlete implements English{
        public BasketBallCoach(){}
        public BasketBallCoach(String name,int age){
                super(name,age);// extends Person
        }
        public void eat(){
                System.out.println("BBer eat apple and lemon");
        }
        public void study(){
                System.out.println("BBer learn how to teach movate the basket");
        }
        public void OralEnglish(){
                System.out.println("learning BBEnglish"); //BB study ppEnglish
        }
}

1 个回复

正序浏览
  1. preview:
  2. 继承的时候,提取了多个方法,而有些方法不是每个子类都是一模一样的实现,
  3.                 这个时候,就应该把这样的方法不提供具体实现,而不提供具体实现的方法是一个抽象方法。
  4.                         在一个类中,如果有抽象方法,该类必须定义为抽象类。
  5. eg:
  6.                 A:抽象类或者抽象方法由abstract修饰
  7.                 B:抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类
  8.                 C:抽象类不能实例化
  9.                 D:抽象类的子类
  10.                         a:是抽象类
  11.                         b:是具体类,就要重写所有抽象方法

  12. 接口:某个继承体系需要扩展功能的时候,就应该实现接口。
  13.        
  14.         特点:
  15.                 A:接口用interface修饰
  16.                 B:类实现接口用implements修饰
  17.                 C:接口不能实例化
  18.                 D:接口的实现
  19.                         a:抽象类
  20.                         b:具体类,重写接口中的所有抽象方法
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马