长沙多用户商城网站建设移动通信网站建设
2026/1/27 18:48:45 网站建设 项目流程
长沙多用户商城网站建设,移动通信网站建设,58做网站一年多少钱,wordpress分类含有中文抽象类 用修饰符abstract修饰类#xff0c;可以定义抽象类。 抽象类的可以定义抽象方法#xff0c;或者说有定义抽象方法的类必须是抽象类#xff0c;抽象方法不能有方法的实现代码体。 抽象类中可以有普通方法#xff0c;并且abstract只能修饰方法#xff0c;不能修饰属性…抽象类用修饰符abstract修饰类可以定义抽象类。抽象类的可以定义抽象方法或者说有定义抽象方法的类必须是抽象类抽象方法不能有方法的实现代码体。抽象类中可以有普通方法并且abstract只能修饰方法不能修饰属性。// 用修饰符abstract定义抽象类publicabstractclassAbstractClass{// 用修饰符abstract定义抽象方法抽象方法不能有方法体publicabstractvoidsay();publicabstractvoidrun();// 可以定义普通方法publicvoidshow(){System.out.println(抽象类中的普通方法);}// 可以定义变量变量不能用abstract修饰publicStringname;publicintage;}抽象类不能被new实例化要实例化需要在子类重写抽象方法。当然子类也可以是抽象类此时就可以继续抽象下去无需实现父类的抽象方法在抽象类的子类实例化对象后可以利用多态特性让抽象类的引用指向子类的对象。publicclassImplementClassextendsAbstractClass{// 实现父抽象类的抽象方法Overridepublicvoidsay(){System.out.println(say);}// 实现父抽象类的抽象方法Overridepublicvoidrun(){System.out.println(run);}}publicclassApp{publicstaticvoidmain(String[]args){// new AbstractClass(); 无法实例化抽象类// 可以实例化抽象类的已重写抽象方法的子类AbstractClassanewImplementClass();a.run();// 调用抽象类中已重写抽象方法的子类方法a.show();// 调用继承抽象类的非抽象方法}}为什么会有抽象类抽象类是介于接口和普通实现类的中间过渡既有类的特性又有接口的特性像接口一样能够定义抽象方法抽象方法可以理解成定义一套规范。这套规范指导子类并且强制要求子类实现。像类一样能够定义实现方法让子类直接继承抽象父类的具体已实现的方法。像类一样是单继承关系不想接口一样支持多继承。某些场景下单继承可能是更优选择。接口接口是比抽象类更完全的抽象接口使用interface定义。由于接口必须用于其他类进行实现所以必须是public公开的因此不能定义private、default、protected。接口也可以不用public做修饰符即非全局访问限制只有同包类可以访问。// 包私有接口只有同包类可以访问interfacePackagePrivateInterface{}// 公共接口所有类都可以访问publicinterfacePublicInterface{}与抽象类中可以有抽象方法和非抽象方法不同接口中的方法必须是抽象方法Java8以前。并且由于抽象方法必须是公开的所以可以不需要定义修饰符因为隐式使用 public abstract 。publicinterfaceDemo{// 公开的抽象方法隐式 public abstractvoidsayHello();// 公开的默认方法必须是 publicdefaultvoiddefaultMethod(){privateHelper();}// 私有方法Java 9privatevoidprivateHelper(){// 只能在接口内部调用}}在Java8之后接口除了有抽象方法外还可以有默认方法、静态方法和私有方法。默认方法使用default关键字修饰有方法体。实现类可以直接继承或重写它。静态方法使用static关键字修饰有方法体。属于接口自身通过接口名.静态方法名()调用。私有方法使用 private 关键词修饰只能在接口内部调用。与抽象类相似接口也不能实例化必须通过子类重写抽象方法进行实现。但是抽象类使用extends关键字标记子类而接口使用implement关键字标记实现接口的类。publicclassDemoImpimplementsDemo{// 重写实现接口中的抽象方法OverridepublicvoidsayHello(){System.out.println(hello);}OverridepublicvoidsayHi(){System.out.println(hi);}}与抽象类不同接口可以多继承子类必须重写多个接口的抽象方法。publicclassDemoImpimplementsDemo0,Demo{// 需要重写多个继承接口的全部方法。}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询