final关键字 对象的上转型对象

一.final关键字
1.final关键字可以修饰类,成员变量和方法中的局部变量。
2.final类不能有子类。
3.final方法不允许被重载。
4.final修饰成员变量或者局部变量为常量,常量在声明时没有默认值,所以在声明常量时必须指定常量值。
5.代码示例如下:

package lonely;
public class Train {
	public static void main(String[] args) {
A a=new A();
a.getXYSum();
	}
}
class A{//final类
	final int x=1;//final成员变量
	final int y=1;//final成员变量
	
	final void getXYSum()//final方法
	{final int z=1;//final局部变量
	int sum;
	sum=x+y+z;
		System.out.println("x+y+z="+sum);
	}
}

二.上转型对象
1.上转型对象不能操作子类新增的成员,不能调用子类的方法。
2.上转型对象只能访问从父类继承的成员变量和方法,也可以调用隐藏的成员变量和重写方法。
3.可以将一个上转型对象强制转换到一个子类对象。
4.示例代码如下:

/**
 * 
 */
package lonely;

/**
 * @author ThinkPad
 *
 */
public class Train {
	public static void main(String[] args) {
A a;
B b=new B();
a=b;//也可以通过 a=B b=new B()的方式声明对象a为对象b的上转型对象
a.getXYSum();//调用子类重写的方法
a.getABSum();//调用子类继承的方法
b.getXYSum();//调用子类声明的方法
a.x=2;//调用隐藏的变量x;
b.y=2;//|调用隐藏的变量y;
B b1=(B)a;//将父类对象强制转换为子类对象 即将A类对象转换为B类对象
a.getXYSum();//调用子类声明的对象
	}
}
class A{
	 int x=1;
	 int y=1;
	 int a=3;
	 int b=3;
	void getXYSum()
	{
	int sum;
	sum=x+y;
		System.out.println("x+y="+sum);
	}
	void getABSum()
	{
		int sum=a+b;
		System.out.println("a+b="+sum);
	}
}
class B extends A
{
	int x=2;
	int y=2 ;
	void getXYSum()
	{
		int sum=x+y;
		System.out.println("x+y="+sum);
	}
	
}
发布了75 篇原创文章 · 获赞 55 · 访问量 9734

猜你喜欢

转载自blog.csdn.net/weixin_43597743/article/details/102257206