Jav最新实用教程 当子类执行它自己声明的方法时,所操作的就是它自己声明的 变量,而把继承自父类的变量隐藏起来了。 这样就出现一个问题,也就是如何在子类自己定义的方法中调 用父类的变量?在子类中使用关键字 super即可,格式为: super.变量名 例5.4:一个属性隐藏简单的例子 class a t public void printiO System. out println("父类方法i="+i) class b extends a float i=3.14f,∥属性覆盖 public void printf( 2021年2月20日星期六
Java最新实用教程 2021年2月20日星期六 16 当子类执行它自己声明的方法时,所操作的就是它自己声明的 变量,而把继承自父类的变量隐藏起来了。 这样就出现一个问题,也就是如何在子类自己定义的方法中调 用父类的变量?在子类中使用关键字super即可,格式为: super.变量名 例5.4:一个属性隐藏简单的例子。 class A { int i = 3; public void printi() { System.out.println("父类方法i="+i); } } class B extends A { float i = 3.14f; //属性覆盖 public void printfi() {
Jav最新实用教程 System. out. println("i="+1) System. out. println("父类中i="+ super.);∥调用被覆盖的父类变量 public class C public static void main(String args) B b=new BO; b printf b pri 执行结果如图5-3。 类中i=3 父类方法i=3 图5-3属性隐藏 2021年2月20日星期六
Java最新实用教程 2021年2月20日星期六 17 System.out.println("i="+i); System.out.println("父类中i="+super.i); //调用被覆盖的父类变量 } } public class C { public static void main(String args[]) { B b=new B(); b.printfi(); b.printi(); } } 执行结果如图5-3。 图5-3 属性隐藏
Jav最新实用教程 另一个要注意的问题是:子类并不能继承父类的静态属性,但 可以对父类中的静态属性进行操作。 方法的覆盖 如果子类不需要使用从父类继承来的功能,则可以声明自己的 方法。子类在声明时,可能使用到和父类方法名及参数表完全 相同的方法,但却执行不同于父类的功能。这种情况称为方法 覆盖。 般在下面三种情况下需要使用覆盖: 子类中实现与父类相同的功能,但采用不同的算法或公 式。如 class profit float f(float x, float y) return xo lass P extends Profit 2021年2月20日星期六
Java最新实用教程 2021年2月20日星期六 18 另一个要注意的问题是:子类并不能继承父类的静态属性,但 可以对父类中的静态属性进行操作。 1. 方法的覆盖 如果子类不需要使用从父类继承来的功能,则可以声明自己的 方法。子类在声明时,可能使用到和父类方法名及参数表完全 相同的方法,但却执行不同于父类的功能。这种情况称为方法 覆盖。 一般在下面三种情况下需要使用覆盖: ⚫ 子类中实现与父类相同的功能,但采用不同的算法或公 式。如: class Profit { float f(float x,float y) { return x*y; } } class P extends Profit
Jav最新实用教程 float f(float x, float y) return x+y 在名字相同的方法中,要做比父类更多的事情。 在子类中需要取消从父类继承的方法。 注意:在子类中重写父类已有方法时,应保持与父类完全相同 的方法名,返回值和参数列表,即相同的方法签名,并且不允 许降低方法的访问权限。 5.14继承时的构造方法 构造方法是中特殊的方法,有继承时构造方法遵循以下原则 子类不能从父类继承构造方法。 好的程序设计方法是在子类的构造方法中调用父类的某 个构造方法 2021年2月20日星期六
Java最新实用教程 2021年2月20日星期六 19 { float f(float x,float y) { return x+y; } } ⚫ 在名字相同的方法中,要做比父类更多的事情。 ⚫ 在子类中需要取消从父类继承的方法。 注意:在子类中重写父类已有方法时,应保持与父类完全相同 的方法名,返回值和参数列表,即相同的方法签名,并且不允 许降低方法的访问权限。 5.1.4继承时的构造方法 构造方法是中特殊的方法,有继承时构造方法遵循以下原则: ⚫ 子类不能从父类继承构造方法。 ⚫ 好的程序设计方法是在子类的构造方法中调用父类的某一 个构造方法
Jav最新实用教程 ● super关键字也可以用于构造方法中,其功能为调用父类 的构造方法。 如果在子类的构造方法的声明中没有明确调用父类构造 方法,则系统在执行子类的构造方法时会自动调用父类默认的 构造方法(即无参数的构造方法)。 如果子类的构造方法的声明中调用父类的构造方法,则 调用语句必须出现在子类构造方法的第一行。 例5.5:有继承时的构造方法。 public class Person protected String name, phone, address public Persono this("","",""); public Person( String aName, String aPhone, String anAddress) name= aName 2021年2月20日星期六
Java最新实用教程 2021年2月20日星期六 20 ⚫ super关键字也可以用于构造方法中,其功能为调用父类 的构造方法。 ⚫ 如果在子类的构造方法的声明中没有明确调用父类构造 方法,则系统在执行子类的构造方法时会自动调用父类默认的 构造方法(即无参数的构造方法)。 ⚫ 如果子类的构造方法的声明中调用父类的构造方法,则 调用语句必须出现在子类构造方法的第一行。 例5.5:有继承时的构造方法。 public class Person { protected String name,phone,address; public Person() { this(" ", " "," "); } public Person(String aName,String aPhone,String anAddress) { name = aName;