台前网站建设费用在网站中设置网站地图
2026/4/18 13:15:41 网站建设 项目流程
台前网站建设费用,在网站中设置网站地图,企业信息系统规划的含义,铜陵网站建设哪家好抽象类、接口、内部类 一、抽象类为子类提供一个通用的模版和框架#xff0c;定义一些通用的逻辑或规范#xff0c;同时允许子类根据需要实现具体功能。1、抽象类不能被实例化。 2、抽象类应该至少有一个抽象方法#xff0c;否则它没有任何意义。 3、抽象类中的抽象方法没有…抽象类、接口、内部类一、抽象类为子类提供一个通用的模版和框架定义一些通用的逻辑或规范同时允许子类根据需要实现具体功能。1、抽象类不能被实例化。2、抽象类应该至少有一个抽象方法否则它没有任何意义。3、抽象类中的抽象方法没有方法体。4、抽象类的子类必须给出父类中的抽象方法的具体实现除非该子类也是抽象类。/* by yours.tools - online tools website : yours.tools/zh/dnsusa.html */ // 抽象类 Animal abstract class Animal { protected String name; // 构造方法 public Animal(String name) { this.name name; } // 抽象方法子类必须实现 public abstract void sound(); // 普通方法所有子类共享 public void sleep() { System.out.println(name is sleeping.); } } // 子类 Dog 继承自 Animal class Dog extends Animal { // 构造方法 public Dog(String name) { super(name); } // 实现抽象方法 Override public void sound() { System.out.println(name says: Woof!); } } // 子类 Cat 继承自 Animal class Cat extends Animal { // 构造方法 public Cat(String name) { super(name); } // 实现抽象方法 Override public void sound() { System.out.println(name says: Meow!); } } // 测试类 Main public class Main { public static void main(String[] args) { // 创建 Dog 对象 Animal dog new Dog(Buddy); dog.sound(); // 输出Buddy says: Woof! dog.sleep(); // 输出Buddy is sleeping. System.out.println(); // 创建 Cat 对象 Animal cat new Cat(Kitty); cat.sound(); // 输出Kitty says: Meow! cat.sleep(); // 输出Kitty is sleeping. } }二、接口定义一组行为规范接口通过抽象方法定义了一组行为规范强制实现类实现这些方法一个类可以实现多个接口从而表现出多种行为字段默认是public static final用于定义全局常量表示can do what如果一个类实现的多个接口中有同名的默认方法需要手动解决冲突/* by yours.tools - online tools website : yours.tools/zh/dnsusa.html */ // 定义接口 Flyable interface Flyable { // 静态常量全局常量 int MAX_SPEED 1000; // 默认是 public static final // 抽象方法所有实现类必须实现 void fly(); // 默认方法Java 8 引入提供默认实现 default void land() { System.out.println(Landing...); } // 静态方法Java 8 引入通过接口名调用 static void info() { System.out.println(This is the Flyable interface.); } } // 实现类 Bird class Bird implements Flyable { private String name; public Bird(String name) { this.name name; } Override public void fly() { System.out.println(name is flying in the sky with a max speed of Flyable.MAX_SPEED km/h.); } Override public void land() { System.out.println(name is landing gracefully.); } } // 实现类 Airplane class Airplane implements Flyable { private String model; public Airplane(String model) { this.model model; } Override public void fly() { System.out.println(model is flying at high altitude with a max speed of Flyable.MAX_SPEED km/h.); } } // 测试类 Main public class Main { public static void main(String[] args) { // 调用静态方法 Flyable.info(); // 输出This is the Flyable interface. // 访问静态变量 System.out.println(Max speed for all Flyable objects: Flyable.MAX_SPEED km/h.); System.out.println(); // 创建 Bird 对象 Flyable bird new Bird(Sparrow); bird.fly(); // 输出Sparrow is flying in the sky with a max speed of 1000 km/h. bird.land(); // 输出Sparrow is landing gracefully. System.out.println(bird.MAX_SPEED km/h.); //1000 km/h - 这种写法不会报错但它实际上是 语法糖 编译器会自动将其转换为通过接口名访问的形式: System.out.println(Flyable.MAX_SPEED km/h.); System.out.println(); // 创建 Airplane 对象 Flyable airplane new Airplane(Boeing 747); airplane.fly(); // 输出Boeing 747 is flying at high altitude with a max speed of 1000 km/h. airplane.land(); // 输出Landing...使用默认实现 } }三、抽象类和接口的区别特性接口抽象类定义方式使用interface关键字定义使用abstract关键字定义成员变量只能是public static final可以是普通变量或静态变量构造器不允许定义构造器可以定义构造器多重继承支持多重实现不支持多重继承设计目的定义行为规范can-do定义通用结构is-a四、内部类根据自己想限定的作用范围来决定使用哪种。成员内部类静态嵌套类局部内部类匿名内部类- 就是没有名字的类public class Main { // 成员内部类非静态 class MemberInnerClass { public void display() { System.out.println(This is a member inner class.); } } // 静态嵌套类 static class StaticNestedClass { public void display() { System.out.println(This is a static nested class.); } } // 外部类方法 public void createLocalAndAnonymousClasses() { // 局部内部类 class LocalInnerClass { public void display() { System.out.println(This is a local inner class.); } } // 创建局部内部类对象并调用方法 LocalInnerClass localInner new LocalInnerClass(); localInner.display(); // 匿名内部类 Runnable anonymousInner new Runnable() { Override public void run() { System.out.println(This is an anonymous inner class.); } }; // 调用匿名内部类的方法 anonymousInner.run(); } // 测试主方法 public static void main(String[] args) { // 创建外部类对象 Main outer new Main(); // 创建成员内部类对象并调用方法 Main.MemberInnerClass memberInner outer.new MemberInnerClass(); memberInner.display(); // 创建静态嵌套类对象并调用方法 Main.StaticNestedClass staticNested new Main.StaticNestedClass(); staticNested.display(); // 调用方法以创建局部内部类和匿名内部类 outer.createLocalAndAnonymousClasses(); } }

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

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

立即咨询