网站建设公司做网站需要注意什么,网站开发应聘问题,如何查看网站开发的语言,网站报价抽象类
一种不能被实例化的类#xff0c;目的是为了让其他类继承它#xff0c;并在子类中完善它的抽象方法。我们使用 abstract 关键字来定义抽象类#xff0c;同时它可以包含抽象方法和普通方法。
例子#xff1a;
abstract class Shape {// 抽象方法#xff0c;没有实…抽象类
一种不能被实例化的类目的是为了让其他类继承它并在子类中完善它的抽象方法。我们使用 abstract 关键字来定义抽象类同时它可以包含抽象方法和普通方法。
例子
abstract class Shape {// 抽象方法没有实现abstract void draw();// 普通方法有具体实现void display() {System.out.println(This is a shape.);}
}
在这个例子中Shape 是一个抽象类它包含了一个抽象方法 draw 和一个普通方法 display。抽象方法没有实际的实现而是在子类中被具体实现。
当我们要创建一个实际的形状类时我们可以继承抽象类并实现它的抽象方法比如
class Circle extends Shape {void draw() {System.out.println(Drawing a circle.);}
}接口
接口定义了一组方法但没有提供这些方法的具体实现。类通过实现implements接口来承诺提供这些方法的具体实现。让我们看一个简单的例子
// 定义一个简单的接口
interface Eater {void eat();
}// 实现接口的类
class Human implements Eater {public void eat() {System.out.println(Human is eating.);}
}// 另一个实现接口的类
class Animal implements Eater {public void eat() {System.out.println(Animal is eating.);}
}在这个例子中Eater 是一个接口它规定了一个方法 eat。然后Human 和 Animal 这两个类分别实现了这个接口提供了各自的 eat 方法的具体实现。 接口中的权限
在Java接口中所有的成员都具有公共的访问权限。接口中的字段成员变量默认为 public、static、final而方法默认为 public 和 abstract。
非 public 的数据没有用不能被任何调用。不写修饰符编译器也会默认为Public 在 Java 中与 C 不同没有类似于 C 中的 友元 的概念 注意
类只能继承一个类但可以实现多个接口。
抽象类可以有构造器而接口不能有。
抽象类中的抽象方法可以有具体的实现而接口中的方法默认是抽象的不能有实现。 final 和 static 的区别 final 关键字 1. **变量** 当应用于变量时final 表示该变量是一个常量不可再被修改。一旦被赋值就不能再改变。 java final int MAX_VALUE 100; 2. **方法** 当应用于方法时final 表示该方法不能被子类重写。 java class Parent { final void display() { System.out.println(This is a final method.); } } class Child extends Parent { // 无法重写display方法 } 3. **类** 当应用于类时final 表示该类不能被继承。 java final class FinalClass { // 不能有子类 } static 关键字 1. **变量** 当应用于变量时static 表示该变量属于类而不是实例。所有实例共享同一份变量。 java class Example { static int count 0; } 2. **方法** 当应用于方法时static 表示该方法属于类而不是实例。可以通过类名直接调用不需要创建实例。 java class Utility { static void doSomething() { System.out.println(This is a static method.); } 3. **块** 当应用于块时static 表示该块在类加载时执行而不是在实例创建时执行。 java class Example { static { System.out.println(This is a static block.); } } 对于静态变量静态字段可以通过类名直接访问并修改它们但是静态方法不能重写。 没有静态类这个东西。