package org.lee; /** * * @author tomyjohn */ public class TestClass { public static void main(String[] args) { Sub sub=new Sub(); System.out.println(sub.i); sub.test(); sub.su(); /* * 下面存在多态,编译时是Base类型,运行时表现的Sub类型 * b对象可以访问Base类的属性和方法,但是不能访问被子类覆盖的方法 * 也不能访问子类的属性和方法; */ Base b=new Sub(); //执行的是子类的方法 b.test(); b.ba(); //下面两行代码是非法的 //b.su(); // int k=b.j; System.out.println(b.i); } } class Base { int i=0; void test() { System.out.println("base"); } void ba() { System.out.println("ba"); } } class Sub extends Base { int j=3; int i=4; void test() { System.out.println("sub"); } void su() { System.out.println("su"); } } 如我们在使用集合时,如果 List<String> list=new ArrayList<String>(); 那么下面的代码则是非法的 list.trimToSize();