标签:
程序中parent=child 经过该赋值语句父类的对象类型转变为child类型了,则在调用方法时会调用子类的方法。但是在使用成员变量时还是使用自己的成员变量。
语句((child)parent).myvalue++,类似于强制类型转换,强制将父类的成员转变为子类的成员变量,导致子类成员变量改变,所以在调用子类方法时数值改变。
如图所示添加了代码:
Parent parent1=new Parent();
Parent=parent1;
Parent.printvalue();
将会输出100,但是下面强制类型转换时出现错误,所以强制转换一定要建立在父类对象时子类对象类型的基础上。
import javax.swing.*; public class Project { public static void main(String args[]) { String grade; grade=JOptionPane.showInputDialog("请输入学生的成绩:"); while(true) { try { int g=Integer.parseInt(grade); if(g>=0&&g<60) { JOptionPane.showMessageDialog(null, "不及格","results",JOptionPane.PLAIN_MESSAGE); break; } else if(g>=60&&g<70) { JOptionPane.showMessageDialog(null, "及格","results",JOptionPane.PLAIN_MESSAGE); break; } else if(g>=70&&g<80) { JOptionPane.showMessageDialog(null, "中","results",JOptionPane.PLAIN_MESSAGE); break; } else if(g>=80&&g<90) { JOptionPane.showMessageDialog(null, "良好","results",JOptionPane.PLAIN_MESSAGE); break; } else if(g>=90&&g<=100) { JOptionPane.showMessageDialog(null, "优秀","results",JOptionPane.PLAIN_MESSAGE); break; } else grade=JOptionPane.showInputDialog("输入错误,请重新输入:"); } catch(Exception e) { grade=JOptionPane.showInputDialog("输入错误,请重新输入:"); } } } }
如上代码所示
try是检测他的范围内的代码是否有异常如果有则会转到catch 输出异常结果,没有则程序继续执行。
实例中还涉及到了finally,它是用来做最后的处理的,不管是否有异常发生finally中的语句都会被执行。
上例用的try和catch是做万能处理的只有有异常都会catch到哪,但是也可以自己定义异常类,用来检测某一项异常。
标签:
原文地址:http://www.cnblogs.com/dotacai/p/4960350.html