1.1 面向对象高级课程安排( 三 )

来 , 我们举例说明一下:苹果和水果 , 由于苹果是水果的一种 , 所以 , 我们可以把水果设计为父类 , 苹果设计为子类 。
我们再来说 , 猫和动物 , 由于猫是动物的一种 , 所以 , 我们可以把动物设计为父类 , 猫设计为子类 。
最后 , 我们再来说猫和狗 , 猫是狗的一种 , 或者狗是猫的一种 , 这都说不通 , 所以 , 它们之间不存在继承关系 , 就不应该采用继承关系来设计猫类和狗类 。
好了 , 关于继承的好处和弊端 , 以及什么时候使用继承我们就先讲到这里 。
1.4 继承中成员访问特点 1.4.1 成员变量访问特点
来 , 继续啊 , 下面我们来学习继承中成员变量的访问特点 。
而关于这个特点呢 , 我们先到IDEA中去演示 , 然后再回来总结 。
public class Fu {//年龄public int age = 40;}
public class Zi extends Fu {//身高public int height = 175;//年龄public int age = 20;public void show() {int age = 30;System.out.println(age);System.out.println(height);//报错//System.out.println(weight);}}
/*测试类*/public class Demo {public static void main(String[] args) {//创建对象 , 调用方法Zi z = new Zi();z.show();}}
这里为了访问方便 , 年龄我们用进行了修饰 。
演示完毕后 , 回到资料我们来总结一下:
在子类方法中访问一个变量:
好了 , 关于继承中成员变量的访问特点我们就先讲到这里
1.4.2 super关键字
来 , 继续啊 , 下面我们来学习super关键字 。
而关于super关键字的学习 , 我们先到IDEA中去演示 , 然后再回来总结 。
public class Fu {public int age = 40;}
public class Zi extends Fu {public int age = 20;public void show() {int age = 30;System.out.println(age);//我要访问本类的成员变量age , 怎么办呢?System.out.println(this.age);//我要访问父类的成员变量age , 怎么办呢?System.out.println(super.age);}}
/*测试类*/public class Demo {public static void main(String[] args) {//创建对象 , 调用方法Zi z = new Zi();z.show();}}
演示完毕后 , 回到资料我们来总结一下:
super 关键字的用法和 this 关键字的用法相似
这里的访问成员变量我们刚才已经演示过了 , 至于访问构造方法和访问成员方法 , 我们先了解格式 , 接下来我们就会使用到 。
好了 , 关于super关键字我们就先讲到这里
讲解完毕后 , 大家赶快动手练习一下吧 。
1.4.3 构造方法访问特点
来 , 继续啊 , 下面我们来学习继承中构造方法的访问特点 。
而关于这个特点呢 , 我们先到IDEA中去演示 , 然后再回来总结 。
public class Fu {public Fu() {System.out.println("Fu中无参构造方法被调用");}public Fu(int age) {System.out.println("Fu中带参构造方法被调用");}}
public class Zi extends Fu {public Zi() {System.out.println("Zi中无参构造方法被调用");}public Zi(int age) {System.out.println("Zi中带参构造方法被调用");}}