首页 > 代码库 > Java入门——面向对象基础(三)

Java入门——面向对象基础(三)

Java入门——抽象类与接口的应用


本Blog内容

  1. 为抽象类与接口实例化
  2. 抽象类的实际应用——模板设计
  3. 接口的实际应用——制定标准
  4. 设计模式——工厂设计
  5. 设计模式——代理设计

为抽象类与接口实例化

  利用多态性

 1 package Sep16; 2  3 public class AbstractCaseDemo1 { 4  5     /** 6      * @param args 7      */ 8     public static void main(String[] args) { 9         // TODO Auto-generated method stub10         Abstract a=new BAbstract();11         a.print();12     }13 14 }15 abstract class Abstract{16     public abstract void print();17 }18 class BAbstract extends Abstract{19     public void print(){20         System.out.println("Hello Word!!!");21     }22 }

抽象类的实际应用——模板设计

  就是先用抽象类设计一张空白的模板,具体不同之处用子类实现。

 1 package Sep16; 2  3 public class AbstractCaseDemo2 { 4  5     /** 6      * @param args 7      */ 8     public static void main(String[] args) { 9         // TODO Auto-generated method stub10         Person student=new Students("Bob",21,89f);11         Person worker=new Workers("搬砖哥",22,9999);12         student.say();13         worker.say();14     }15 16 }17 abstract class Person{18     private String name;19     private int age;20     public Person(String name, int age) {21         super();22         this.name = name;23         this.age = age;24     }25     public String getName() {26         return name;27     }28     public int getAge() {29         return age;30     }31     public void say(){32         System.out.println(this.getContent());//说话的功能,Person类的方法33         34     }35     public abstract String getContent();//说话的具体内容,根据不同的人,有不同的定义36 }37 class Students extends Person{38     private float score;39     public Students(String name, int age, float score) {40         super(name, age);41         this.score = score;42     }43     public String getContent(){44         return "学生信息:姓名:"+super.getName()+";年龄:"+super.getAge()+",成绩:"+this.score;45     }46 }47 class Workers extends Person{48     private float salary;49     public Workers(String name, int age, float salary) {50         super(name, age);51         this.salary = salary;52     }53     public String getContent(){54         return "工人信息:姓名:"+super.getName()+";年龄:"+super.getAge()+",工资:"+this.salary;55     }56 }
学生信息:姓名:Bob;年龄:21,成绩:89.0工人信息:姓名:搬砖哥;年龄:22,工资:9999.0

 


接口的实际应用——制定标准

package Sep16;public class AbstractCsseDemo03 {	/**	 * @param args	 */	public static void main(String[] args) {		// TODO Auto-generated method stub		Computer.plugin(new Flash());		System.out.println("---------------------");		Computer.plugin(new Print());	}}interface USB{//定义USB标准	public void start();	public void stop();}//定义实现USB接口的U盘类class Flash implements USB{	public void start(){		System.out.println("U盘开始工作!");	}	public void stop() {		// TODO Auto-generated method stub		System.out.println("U盘停止工作!");	}}//定义实现USB接口的打印机类class Print implements USB{	public void start(){		System.out.println("打印机开始工作!");	}	public void stop() {		// TODO Auto-generated method stub		System.out.println("打印机停止工作!");	}}class Computer{	public static void plugin(USB usb){//实现了USB接口的类都可以传递过来		usb.start();		System.out.println("======设备工作中=====");		usb.stop();	}}

  

U盘开始工作!======设备工作中=====U盘停止工作!---------------------打印机开始工作!======设备工作中=====打印机停止工作!

设计模式——工厂设计

  类似于Java的JVM虚拟机,采用Factory类的形式处理主函数与子类之间的关系。

  

 

Java入门——面向对象基础(三)