资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,面向对象程序设计(上),类的继承,面向对象最重要的特点之一,就是可以实现对类的复用,通过“继承”一个现有的类,可以使用已经定义的类中的方法和变量。,类的方法可以被继承,但是类的构造器不能被继承。,类的继承(con.),类继承的基本语法:, class extends , *,在Java中,一个类只能继承继承一个父类,这种方式叫做单继承。这一点和C+不一样。,类的继承(con.),java.lang.Object类是所有类的父类,虽然一个类只可以继承一个父类,但是一个父类却可以被多个子类所继承。,从子类的角度看,它是“继承(extends)”父类;而从父类的角度看,它是“派生(derive)”子类。它们指的都是同一个动作,只是角度不同而已。,类的继承例子(案例6-1),类的继承例子:,public class Animal,private int weight;,public int getWeight(),return weight;,public void setWeight(int w),weight=w;,类的继承例子(con.),public class Dog extends Animal,/*,*子类新增方法,*/,public void Bark(),System.out.println(WangWang);,类的继承例子(con.),public class MyDog,private static Dog myDog;,public static void main(String args),myDog=new Dog();,myDog.setWeight(50);,System.out.println(My Dogs Weight is+myDog.getWeight();,myDog.Bark();,访问控制,在Java中,可以在类、类的属性以及类的方法前面加上一个修饰符(modifier),来对类进行一些访问上的控制。,修饰符,同一个类中,同一个包中,子类中,全局,private,Yes,default,Yes,Yes,protected,Yes,Yes,Yes,public,Yes,Yes,Yes,Yes,访问控制(con.),访问控制的限制程度从高到低如下图所示。注意,Default不是一个修饰符,它只是用来表示一种不加任何修饰符时的状态。,private,Default,protected,public,方法的覆盖(override),当子类继承符类时,可以从父类继承它的属性和方法。,如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。,当对父类的方法进行覆盖时,子类中的方法必须和父类中对应的方法具有相同的方法名称、输入参数和返回值。,子类中的覆盖方法不能使用比父类中被覆盖方法更严格的访问权限。,方法的覆盖例子(案例6-2),public class Person,String name;,int age;,String sex;,public String showName(),return name;, ,方法的覆盖例子(con.),public class Teacher extends Person,private String department;,public void setDepartment(String dept),department = dept;,public String getDepartment(),return department;,/方法覆盖,public String showName(),return name+老师;, ,
展开阅读全文