abstract(抽象)修饰符,可以修饰类和方法
1,abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就是编译时类型,抽象类就像当于一类的半成品,需要子类继承并覆盖其中的抽象方法。
2,abstract修饰方法,会使这个方法变成抽象方法,也就是只有声明(定义)而没有实现,实现部分以";"代替。需要子类继承实现(覆盖)。
注意:有抽象方法的类一定是抽象类。但是抽象类中不一定都是抽象方法,也可以全是具体方法。
abstract修饰符在修饰类时必须放在类名前。
abstract修饰方法就是要求其子类覆盖(实现)这个方法。调用时可以以多态方式调用子类覆盖(实现)后的方法,也就是说抽象方法必须在其子类中实现,除非子类本身也是抽象类。
注意:父类是抽象类,其中有抽象方法,那么子类继承父类,并把父类中的所有抽象方法都实现(覆盖)了,子类才有创建对象的实例的能力,否则子类也必须是抽象类。抽象类中可以有构造方法,是子类在构造子类对象时需要调用的父类(抽象类)的构造方法。
举个简单的例子下面有一个抽象类
abstract class E{
public abstract void show();//public abstract 可以省略
}
然后其它类如果继承它通常为了实现它里面的方法
class F extends E{
void show(){
//写具体实现的代码
}
}
最后再主方法里面定义一个父类引用指向子类对象,就会发生多态现象,比如
E e=new F();
e.show();
实际调用了子类里面的show()方法
分享到:
相关推荐
abstract 访问修饰符表示抽象类,抽象类不能被实例化。抽象类中可以定义抽象方法,抽象方法是不能被实现的方法。 static 访问修饰符 static 访问修饰符表示静态变量或静态方法。静态变量和静态方法可以被类的所有...
在设计抽象类时,通常使用 abstract 修饰符,以便定义抽象方法和抽象类。 Java 修饰符是 Java 语言中的一种基本语法元素,用于控制访问权限、继承关系、抽象类和静态成员变量等方面。正确地使用 Java 修饰符可以...
abstract修饰符可以用来修饰类和类中的成员,表示该类是抽象类,不能实例化,必须被继承并重写抽象函数。virtual修饰符只能用来修饰类中的函数,表明是虚函数,虚函数可以被重写,virtual函数重不重写是可选的,不是...
- **abstract**: 抽象类修饰符,用于声明抽象类。抽象类不能实例化,只能作为其他类的基类。 - **final**: 最终类修饰符,防止类被继承。通常用于创建不可变类或工具类。 - **default**: 缺省访问控制符,没有...
非访问修饰符包括abstract、sealed、新new等,用于控制类和成员的其他特性。下面是每种非访问修饰符的详细解释: * abstract:抽象的,表示该类只能作为父类被用于继承,而不能进行对象实例化。 * sealed:密封的,...
在Java编程语言中,修饰符是用来限制或指定代码元素(如类、方法、变量)的访问权限、特性或行为的关键词。以下是对标题和描述中提及的Java修饰符及其相关知识点的详细介绍: 1. 类的访问控制修饰符: - **public*...
修饰符类的访问修飾符共有四种:默认、public、abstract 和final。 * 默认(friendly):同一包中的类可以访问。 * public:任何包、任何类都可以访问。 * abstract:抽象类,是不能实例化的,只能被继承。 * final...
PHP 类中修饰符 abstract 抽象类 abstract 抽象方法 抽象类继承抽象类 静态抽象方法
Java语言中的修饰符是编程语法中的重要组成部分,它们用于定义类、接口、变量和方法的特性,从而控制访问权限、实现抽象概念、确保不可变性以及优化代码结构。本章将详细阐述Java中的主要修饰符。 首先,我们讨论...
与类的abstract修饰符配合,构建抽象基类。 - **virtual**:表示方法可以被派生类覆盖,提供一个默认实现,但允许子类改变行为。 - **override**:用于派生类中,覆盖基类的虚拟方法,实现多态。 - **readonly**:...
- `abstract`:抽象修饰符,用于声明方法、属性、索引器或事件,但不提供实现。 - `override`:重写修饰符,用于重写基类的虚方法。 - `virtual`:虚拟修饰符,使基类的方法可以被子类重写。 - `sealed`:密封...
`abstract`修饰符用于声明抽象类或抽象方法。抽象类不能被实例化,它主要用于被其他类继承。抽象方法没有实现体,必须由子类来实现。 ```java abstract class E { public abstract void show(); // 抽象方法 } ...
- **描述**:`abstract`修饰符用于声明抽象类和抽象方法。抽象类不能被实例化,但可以作为其他类的基类;抽象方法没有实现体,必须由子类提供具体实现。 - **用途**:`abstract`用于定义接口规范和模板方法模式,...
1. 抽象类(abstract):abstract 修饰符修饰的类称为抽象类,抽象类是没有具体对象的概念类,不能被实例化。 2. 最终类(final):final 修饰符修饰的类称为最终类,final 类不可能有子类。 3. 静态类(static):...
2. **abstract**:抽象修饰符,用于创建抽象类和抽象方法。抽象类不能实例化,只能被用作其他类的父类。抽象方法只有方法签名,没有具体实现,必须在子类中重写。 3. **static**:静态修饰符,用于创建类级别的变量...
继承实现了代码的复用与维护,修饰符控制了类和成员的访问权限,多态使得程序更加灵活,而抽象类为子类提供了一个共同的模板和抽象方法实现的要求。理解和掌握这些知识点对于学习和应用Java面向对象编程至关重要。
6. **Abstract**: 抽象修饰符,用于声明类或方法为抽象。抽象类不能实例化,只能作为其他类的基类。抽象方法没有实现,必须由派生类提供具体实现。含有抽象方法的类也必须声明为抽象。 7. **Sealed**: 封闭修饰符,...
- 抽象类的访问修饰符可以是public、protected、包访问或private,而接口的所有方法默认都是public。 - 抽象类的构造方法仅用于子类实例化时调用,通常不会直接创建抽象类的实例。 5. **抽象类的应用场景** - 当...
Java是一种面向对象的编程语言,其中修饰符和访问修饰符是控制代码访问权限和行为的重要元素。本篇文章将详细介绍Java中的各种修饰符和访问修饰符。 1. **类的访问修饰符** - `public`:任何类都可以访问声明为`...
- **abstract**:抽象修饰符,用于声明抽象类或抽象方法。抽象类不能被实例化,只能作为其他类的父类。抽象方法没有具体实现,需要子类来完成。 - **synchronized**:同步修饰符,用于确保多线程环境下的安全。当一...