• java--方法和成员的继承,访问


    //在调用方法的时候,不是看句柄是哪一个类,而应该看对象是属于哪一个类的,属于哪一个类的,就调用哪一个类的成员和方法。

    //子类可以添加自己的新方法,但是子类对象的引用赋值给父类句柄之后,不能使用父类的句柄访问子类的新方法。

    //父类的方法重载之后,将子类对象赋值给父类句柄,就不能使用父类句柄调用的该方法为子类覆盖的方法,而不是父类方法。方法覆盖机制。

    //但是,对父类中的变量,如果在子类中重新定义了,在使用该变量的时候,子类的对象使用它,就调用子类的该变量;父类的对象使用它,就调用父类的该变量。

    class S508{
    	int i = 1;
    	int fun(int i,int j){
    		System.out.println("S508() i+j = "+ (i+j));
    		return i+j;
    	}
    }
     class A508 extends S508{
    //	 int i = 9;
    	 int j = 10;
    	int fun(int i,int k){
    		System.out.println("A508() i*k = "+i*k);
    		return i*k;
    	}
    	double fun(double i,int j){
    		System.out.println("A508() i+j = "+(i+j));
    		return i+j;
    	}
    	
    }
    public class F508{
    	public static void main(String[] args) {
    		S508 s= new S508();
    		
    		s.fun(2,5);
    		System.out.println(s.i);
    		A508 a = new A508();
    		
    		a.fun(2,5);
    		System.out.println(a.i);
    		
    //		a = s;
    		a.fun(2.2,5);
    		System.out.println(a.i);
    		
    		s = a;//子类对象赋值给父类句柄
    //		System.out.println(s.i);
    		s.fun(2, 5);
    		System.out.println(s.i);
    //		System.out.println(s.j);
    		
    	}
    }
    

     输出结果:(IDE eclipse)

    S508() i+j = 7
    1
    A508() i*k = 10
    1
    A508() i+j = 7.2
    1
    A508() i*k = 10
    1

  • 相关阅读:
    豆瓣还是能学到东西的!
    Mip-Mapping很重要
    果然还是SB了
    Don't Starve,好脚本,好欢乐
    Soft Renderer的乐趣
    java classloader原理深究
    用gitolite搭建git server
    神话设计模式 --开端
    Dive into Spring framework -- 了解基本原理(二)--设计模式-part2
    Dive into Spring framework -- 了解基本原理(二)--设计模式-part1
  • 原文地址:https://www.cnblogs.com/plxx/p/3331057.html
Copyright © 2020-2023  润新知