81,122
社区成员




class Parents{
private final void doit(){
System.out.println("父类.doit()");
}
final void doit2(){
System.out.println("父类.doit2()");
}
private void doit3(){
System.out.println("父类.doit3()");
}
}
class Sub extends Parents{
public final void doit(){ //在子类中定义一个doit()方法
System.out.println("子类.doit()");
}
//final void doit2(){ //final方法不能覆盖
//System.out.println("子类.doit2()");
//}
public void doit3(){
System.out.println("子类.doit3()");
}
}
public class FinalMethod{
public static void main(String[] args){
Sub s = new Sub(); //实例化Sub类
s.doit(); //调用doit()方法
Parents p = s; //执行向上转型操作
//p.doit(); //不能调用private方法
}
}
class Parents{
private final void doit(){
System.out.println("父类.doit()");
}
final void doit2(){
System.out.println("父类.doit2()");
}
private void doit3(){
System.out.println("父类.doit3()");
}
}
class Sub extends Parents{
public final void doit(){ //在子类中定义一个doit()方法
System.out.println("子类.doit()");
}
//final void doit2(){ //final方法不能覆盖
//System.out.println("子类.doit2()");
//}
public void doit3(){
System.out.println("子类.doit3()");
}
}
public class FinalMethod{
public static void main(String[] args){
Sub s = new Sub(); //实例化Sub类
s.doit(); //调用doit()方法
Parents p = s; //执行向上转型操作
//p.doit(); //不能调用private方法
p.doit2();
p.doit3();
}
}
我刚开始学重写的概念时是看的下面这个例子,这里边重写的条件没有说必须满足向上转型成功才可以啊,不懂,还请大佬看下这个例子:
实例03 在电脑类中展示图片
平板电脑类是普通电脑类的子类,当用户想欣赏放大后的美图时,它们都会以各自的方式(普通电脑通过鼠标点击展示图片,平板电脑通过手指点击触摸屏展示图片)展示图片满足用户的需求。代码如下:
class Computer2{ //父类:电脑
void showPicture(){ //方法:展示图片
System.out.println("鼠标点击");
}
}
public class Pad2 extends Computer2{ //子类:平板电脑
void showPicture(){ //方法:重写父类中展示图片的方法
System.out.println("手指触摸点击触摸屏");
}
public static void main(String[] args){
Computer2 pc = new Computer2(); //创建电脑类对象
System.out.print("pc打开图片: ");
pc.showPicture(); //电脑类对象调用展示图片的方法
Pad2 ipad = new Pad2(); //创建平板电脑类对象
System.out.print("ipad打开图片: ");
ipad.showPicture(); //平板电脑类对象调用重写后父类方法
}
}
运行结果:
pc打开图片:鼠标点击
ipad打开图片:手指点击触摸屏