package com.zpark; /* 抽象类: 1、定义抽象类:在class前面加上abstract 2、抽象类无法被实例化 3、虽然抽象类无法实例化,但是抽象类也有构造方法,该构造方法是给子类创建对象用的 4、抽象类中可以定义抽象方法;并且抽象方法应该以 : 结束,不能有{} ; 例:public abstract void m1(); 5、抽象类中不一定有抽象方法,但是抽象方法必须出现在抽象类中 6、一个非抽象的类继承抽象类,必须将抽象类中的抽象方法覆盖、实现、重写。 —————— 接口: 接口也是一种应用类型,可以等同看作类 1、如何定义接口,语法: 修饰符 interface 接口名{ } 2、接口中只能出现常量、抽象方法; 3、接口其实是一种特殊的抽象类,特殊在接口是完全抽象的 4、接口中没有够着方法,无法被实例化 5、接口与接口之间可以“多继承” 6、一个类可以实现多个接口,“实现”可等同看作“继承” 7、一个非抽象的类实现接口,需要将接口中所有的方法实现、覆盖、重写 8、implements是实现的意思,与extends 意义相同 当接口和抽象累都能完成某项功能时,优先选择接口,因为接口可以支持多继承,可以多实现 */ //接口定义例: public interface JavaNotes03_JieKou { //由于常量都是固定不可再修改,所以必须用public static final修饰,并且可以省略 public static final String A = "a"; public static final double PI = 3.14; //接口中的抽象方法都是public abstract,所以也可以省略不写 public abstract void m1(); void m2();//也是抽象方法 } /* *接口的作用 1、使项目分层,所有层面都面向接口开发,开发效率提高了 2、接口使代码之间耦合度低,就类似与灯泡与灯头,鼠标与电脑,之间,变得可脱离、切换 */ //例1: /*public interface CutomerService{ //定义一个退出系统地方法 void logout();//抽象 } public class CustomerServiceIpl implements CutomerService{ //对接口中的方法实现 public void logout(){ System.out.println ("退出系统"); } } */ //例2:使用接口模拟汽车引擎 //创建引擎接口 public interface Engine { void start();//给引擎提供一个能启动的抽象方法 } //一个具体的引擎实现类ChangAn public class ChangAn implements Engine { public void start(){ System.out.println ("ChangAn启动"); } } //汽车类 public class Car { //引擎,面向接口编程 Engine e; //构造方法,给汽车装上引擎 Car(Engine e){ this.e = e; } //汽车能够测试引擎 public void testEngine(){ e.start (); } } //测试类 public class Test { public static void main(String[] args) { //生产引擎 // Engin ChangAn1= new ChangAn (); //生产汽车 //加入此时汽车想换一个引擎测试,只需在写一个引擎实现引擎接口,然后再以此方法测试即可 Car a = new Car (new ChangAn ()); a.testEngine ();//测试引擎、 } }
接口——笔记
最新推荐文章于 2024-04-19 14:27:00 发布