抽象
实现抽象的方式 java实现
抽象有两种方式
- 抽象类(0 到 100%)
- 接口 (100%)
基本知识:
抽象方法和类
抽象类是被声明为抽象的类——它可能包含也可能不包含抽象方法。抽象类不能被实例化,但它们可以被子类化。
public abstract class ClassName{
// declare fields
// declare nonabstract methods
abstract void methodName();
}
当抽象类被子类化时,子类通常为其父类中的所有抽象方法提供实现。但是,如果不是,则子类也必须声明为抽象的。
抽象方法是在没有实现的情况下声明的方法(没有大括号,后跟分号),如下所示:
abstract void methodName(Parameter List);
抽象是隐藏实现细节并仅向用户显示功能的过程。
了解抽象类的真实场景:
考虑制作一个函数来获取任何学校的学生实力的情况。
现在我们将创建一个抽象类和抽象函数 getStrength()。
然后每所学校(政府或私立)都可以使用这种抽象方法并提供实现。
//Consider this Code
package stackoverflow;
abstract class StudentStrength {
abstract int getStrength();
}
class GovtSchool extends StudentStrength {
@Override
int getStrength() {
return 100;
}
}
class PrivateSchool extends StudentStrength {
@Override
int getStrength() {
return 200;
}
}
public class GetInfo {
public static void main(String args[]) {
StudentStrength ss;
// referring abstract class and creating object of child class
ss = new GovtSchool();
System.out.println("Student strength in Govt School : "+ ss.getStrength());
// output of above : 100
ss = new PrivateSchool();
System.out.println("Student strength in Private School : "+ ss.getStrength());
// output of above : 200
}
}
解释:
在此示例中,StudentStrength 是抽象类,其实现由 GovtSchool 和 PrivateSchool 类提供。
大多数情况下,我们不知道实现类(即对最终用户隐藏),实现类的对象由工厂方法提供。
在此示例中,如果您创建 GovtSchool 类的实例,则会调用 GovtSchool 类的 getStrength() 方法。
文件:GetInfo.java
公立学校学生人数:100 私立学校学生人数:200
回答:
我不明白的是这如何帮助隐藏数据和仅查看必要的数据。
如上面代码所示,我们指的是抽象类并使用子类的功能对最终用户隐藏子类的工作。
我希望我有帮助:)