| // Copyright (c) 2016, the R8 project authors. Please see the AUTHORS file | 
 | // for details. All rights reserved. Use of this source code is governed by a | 
 | // BSD-style license that can be found in the LICENSE file. | 
 | package shaking2; | 
 |  | 
 | public class SubClass1 extends SuperClass { | 
 |   private int used; | 
 |   private int alsoUsed; | 
 |   private boolean usedBoolean; | 
 |   private byte usedByte; | 
 |   private char usedChar; | 
 |   private Object usedObject; | 
 |   private short usedShort; | 
 |   private double usedDouble; | 
 |  | 
 |   private int unused; | 
 |  | 
 |   public SubClass1(int used) { | 
 |     this.used = used; | 
 |   } | 
 |  | 
 |   public SubClass1(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8) { | 
 |     this.used = a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8; | 
 |   } | 
 |  | 
 |   @Override | 
 |   public void virtualMethod() { | 
 |     System.out.println("SubClass1::virtualMethod"); | 
 |   } | 
 |  | 
 |   @Override | 
 |   public void virtualMethod2(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8) { | 
 |     System.out.println("SubClass1::virtualMethod2 " + (a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8)); | 
 |   } | 
 |  | 
 |   @Override | 
 |   public void virtualMethod3() { | 
 |     super.virtualMethod3(); | 
 |     System.out.println("SubClass1::virtualMethod3"); | 
 |   } | 
 |  | 
 |   @Override | 
 |   public void virtualMethod4(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8) { | 
 |     super.virtualMethod4(a1, a2, a3, a4, a5, a6, a7, a8); | 
 |     System.out.println("SubClass1::virtualMethod4 " + (a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8)); | 
 |   } | 
 |  | 
 |   @Override | 
 |   public void unusedVirtualMethod() { | 
 |     System.out.println("SubClass1::unusedVirtualMethod"); | 
 |   } | 
 |  | 
 |   @Override | 
 |   public void interfaceMethod() { | 
 |     System.out.println("SubClass1::interfaceMethod"); | 
 |   } | 
 |  | 
 |   @Override | 
 |   public void interfaceMethod2() { | 
 |     System.out.println("SubClass1::interfaceMethod2"); | 
 |   } | 
 |  | 
 |   @Override | 
 |   public void interfaceMethod3() { | 
 |     System.out.println("SubClass1::interfaceMethod3"); | 
 |   } | 
 |  | 
 |   @Override | 
 |   public void interfaceMethod4() { | 
 |     System.out.println("SubClass1::interfaceMethod4"); | 
 |   } | 
 |  | 
 |   @Override | 
 |   public void interfaceMethod5(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8) { | 
 |     System.out.println("SubClass1::interfaceMethod5 " + (a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8)); | 
 |   } | 
 |  | 
 |   @Override | 
 |   public void accessFields() { | 
 |     super.accessFields(); | 
 |     System.out.println("SubClass1::fields: " + used + " " + alsoUsed + " " + usedBoolean + | 
 |         " " + usedByte + " " + usedChar + " " + usedObject + " " + usedShort + " " + usedDouble); | 
 |     used = 1; | 
 |     alsoUsed = 2; | 
 |     usedBoolean = true; | 
 |     usedByte = 3; | 
 |     usedChar = '?'; | 
 |     usedObject = new Object(); | 
 |     usedShort = 4; | 
 |     usedDouble = 42.42; | 
 |   } | 
 | } |