java - java中的方法和子类
问题描述
我有一个名为 Movie 的类,它的数据和一个在屏幕上打印它的方法。我有另一个类 MovieOV,它是一个从 Movie 继承的类。此外,MovieOV 有一个新字段也可以保存语言。如果是 MovieOV,我如何修改该方法以便它也打印语言?
解决方案
您可以在子类中覆盖相同的显示方法,因为基类中的显示方法将被该方法覆盖
/* package codechef; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
class Movie{
String movieName;
public Movie(String movieName){
this.movieName=movieName;
}
public void display()
{
System.out.println("Movie Name: "+this.movieName);
}
}
class MovieOV extends Movie{
String lang;
public MovieOV(String movieName,String movieLang)
{
super(movieName);
this.lang=movieLang;
}
public void display()
{
System.out.println("Movie Name: "+this.movieName);
System.out.println("Language: "+this.lang);
}
}
/* Name of the class has to be "Main" only if the class is public. */
class Codechef
{
public static void main (String[] args) throws java.lang.Exception
{
// your code goes here
MovieOV obj=new MovieOV("Koyla (1996)","Hindi");
obj.display();
}
}
如您所见,我继承了以movieName 作为其实例变量的Movie 类和显示它的显示方法。当我在基类 MovieOP 中实现相同的方法时,将覆盖 Movie 类的 display 方法,并调用 MovieOP 的 display 方法。您可以使用此关键字引用 Movie 类的实例变量。
推荐阅读
- firebase - 保护多个用户需要写入的 firebase 表
- r - 跨两个一致数据帧的成对图?
- python - 如何循环分组数据框
- spring - Oauth2 - java.lang.IllegalStateException: UserDetailsService 是必需的。带刷新令牌
- c# - C# Revit API - 如何从 autocad 文件中提取信息
- asp.net - 如何将模型和附加参数从视图传递到控制器
- azure - Azure DevOps 权限审核
- canvas - FabricJS 多边形对象过度偏移
- regex - 以 > 结尾的网址
- html - 如何通过超链接打开 Chrome 设置页面?