第五章面向对象高级特征1.ppt
文本预览下载声明
第五章面向对象的高级特征; 一、继承中父类(子类)的转化问题; 子类对象转换为父类对象;class point{
int x, y; ?
point(int x, int y){
this.x=x; this.y=y; }
int getX( ){ return x; }
}?;public class testUpCasting {
public static void main(String [ ] args){
System.out.println(p.getX( ));
}
} ;父类对象转换为子类对象;public static void main(String [ ] args){
point p=new point(1,1);
circle c;
c=(circle)p; //将对象p强制转换为circle对象
System.out.println(c.area( ));
} ;改进的方法:
public static void main(String [ ] args){
point p=new point(1,1);
circle c;
}
;再看下例:
public static void main(String [ ] args){
point p=new circle(10,10,10);
//注意p可以指向其子类
circle c;
} ;二、static变量 和static方法;public class Scope{
static int a;
public static void main(string args[]){
a++;
Scope s1=new Scope();
s1.a++;
Scope s2=new Scope();
s2.a++;
Scope.a++;
System.out.println(“a=”+a);
}
};public class staticTest {
static int num=0; int c;
staticTest( ){ num++; }
public static void main(String args[]) {
staticTest x=new staticTest();
System.out.print(x.num);
staticTest y=new staticTest();
System.out.println(y.num);
}
};Num
c;static方法;class point {
static int count; int x, y;
point(int a, int b){ count++;x=a; y=b;}
static int getCount(){return count;}
} ;Public class Base{
protected int var;
public void method1() {var++; }
}
Public class Sub extends Base{
Public static void method2{
super.method1();}
};class point {
static int count;
int x, y;
point(int a, int b){
count++; x=a; y=b;
System.out.println(Call point constructor!); }
static int getCount(){ return count; }
;public class testStaticVariable {
public static void main(String args[ ]) {
point c1=new point(0,0) ;
point c2=new point(10,10
显示全部