package service;
public abstract class AbstractDrive {
abstract void drive(); //抽象方法必须 被子类实现
void test(){
System.out.print("This is a abstract class");
};
}
package service;
public class Drive extends AbstractDrive{
private String father1 = "father class's object";
void drive(){
System.out.print("FatherClass is drive now");
}
private void fatherDrive(){
System.out.print("Father's private method");
}
}
package service;
public interface Fire {
void fireInGun();
void fireInBomb();
}
package service;
public class MakePlane extends Drive implements Fire{
private int defaultSize = 1000;
int weight = 50000;
//below method must implement
@Override
public void fireInGun() {
// TODO Auto-generated method stub
System.out.print("fire in gun");
}
@Override
public void fireInBomb() {
// TODO Auto-generated method stub
System.out.print("fire in Bomb");
}
}
package service;
import java.util.ArrayList;
public class MakeTank extends Drive{
static double pi = 3.14;
int defaultSize = 100;
MakeTank(){}
public static void main(String[] args) {
MakeTank tank1 = new MakeTank();
//tank1.makeSmallTank();
//tank1.makeSmallTank(200); //重载
MakePlane plane1 = new MakePlane();
int w = plane1.weight; //plane1's size cannot be accessed, weight can
Drive d = new MakeTank();
d.drive();//sub extends father's method
}
//重载
void makeSmallTank(int size){
System.out.println("has made a tank size: "+size);
}
void makeSmallTank(){
System.out.println("has made a tank size: "+defaultSize);
}
//重写
//void drive(){System.out.print("Sub Class is driving");} //if hiddeded, father's method run
}