8.2
**总结 private的方法可以看作是final类型的,这样在子类中是无法被重写的,子类中实际上是可以看作为一个新的方法
**
练习10,page155,创建一个包含两个方法的基类,咋i 第一个方法中可以调用第二个方法。然后产生一个继承自该基类的子类,且覆盖基类汇总的第二个方法,为子类创建一个对象,将它向上转型为基类,并调用第一个方法
父类:ride中调用didi
package main.chapter8;
/**
* base class
*
* @author
* @create 2019-04-10 上午12:16
**/
public class Cycle {
public void ride(){
System.out.println("cycle ride");
didi();
}
public void sayHi(){
System.out.println("this is cycle");
}
public void didi(){
System.out.println("cycle didi");
}
}
子类,重写方法didi
package main.chapter8;
/**
* child class
*
* @author
* @create 2019-04-10 上午12:18
**/
public class Unicycle extends Cycle {
@Override
public void sayHi() {
System.out.println("this is unicycle");
}
@Override
public void didi() {
System.out.println("unicycle didi");
}
}
执行类
package main.chapter8;
/**
* 执行类
*
* @author
* @create 2019-04-10 上午12:19
**/
public class Excutetest {
public static void test(Cycle cycle){
cycle.ride();
cycle.sayHi();
}
public static void main(String[] args){
test(new Unicycle());
}
}
输出:
cycle ride
unicycle didi
this is unicycle
8.2.5
父类:
package main.chapter8;
/**
* Super类
*
* @author
* @create 2019-04-11 上午12:17
**/
public class Super {
public int field = 0;
public int getField(){return field;}
}
子类
package main.chapter8;
/**
* Sub class
*
* @author
* @create 2019-04-11 上午12:18
**/
public class Sub extends Super {
public int field = 1;
public int getField(){return field;}
public int getSuperField(){return super.field;}
}
测试类:
package main.chapter8;
/**
* 执行类
*
* @author
* @create 2019-04-10 上午12:19
**/
public class Excutetest {
public static void test(Cycle cycle){
cycle.ride();
cycle.sayHi();
}
public static void main(String[] args){
// test(new Unicycle());
Super sup = new Sub();
System.out.println("sup.field = "+sup.field +
", sup.getField() =" + sup.getField());
Sub sub = new Sub();
System.out.println("sub.field = "+sub.field+", sub.getField() ="+sub.getField() +
", sub.getSuperField() =" + sub.getSuperField());
}
}
网友评论