1.创建一个父类,在父类方法中创建两个方法,在子类中覆盖第二个方法,为子类创建一个对象,将他向上转型到基类并调用这个方法
通过继承机制,可以利用已有的来定义新的数据类型。所定义的新的不仅拥有新定义的成员,而且还同时拥有旧的成员。我们称已存在的用来派生新类的类为父类,也就是基类。
public class Jicheng { Jicheng(){ //默认构造方法 System.out.println("fulei"); } public void fangfa1(){ System.out.println("父类方法1"); } public void fangfa2(){ //成员方法 System.out.println("父类方法2"); } }
public class cheng extends Jicheng { cheng(){ //默认构造方法 System.out.println("zilei"); } public void fangfa2(){ //重写父类成员方法 System.out.println("子类方法"); } public static void main(String[] args){ //Jicheng a = new Jicheng(); //创建Jicheng的对象并为其分配内存 System.out.println("调用的是:"); Jicheng a = new cheng(); //向上转型 a.fangfa2(); //调用方法(由结果可以看出调用的是子类方法) }
2.创建一个父类和子类,分别创建构造方法,然后向父类和子类添加成员变量和方法,并总结构建子类对象时的顺序
public class Fl { public Fl(){ System.out.println("父类默认构造函数"); } private String food; public Fl (String food){ this.food = food; } private String drink; public String getFood() { return food; } public void setFood(String food) { this.food = food; } public String getDrink() { return drink; } public void setDrink(String drink) { this.drink = drink; } public void man(){ System.out.println("父类方法"); } }
public class Zl extends Fl { public Zl(){ System.out.println("子类默认构造函数"); } public void men(){ System.out.println("子类方法"); } private String water; public String getWater() { return water; } public void setWater(String water) { this.water = water; } private int apple; public int getApple() { return apple; } public void setApple(int apple) { this.apple = apple; } public void hungry(){ System.out.println("子类的方法"); } public static void main(String[] args) { Fl fl = new Fl(); fl.setFood("面包"); fl.setDrink("牛奶"); Zl zl = new Zl(); zl.setApple(4); zl.setWater("一杯水"); System.out.println("父类成员变量:"+fl.getDrink()+" "+fl.getFood()); System.out.println("成员变量:"+zl.apple+" "+zl.water); System.out.println("调用的是:"); fl.man(); zl.hungry(); }}