继承的实现 定义继承的形式为: [修饰符1 class类名 [extends 父类] 类体 Java中的继承是通过extends关键字来实现的, 在定义类时使用extends关键字指明新定艾类的 父类,就在两个类之间建立了继承关系。新定 文的类称为子类,它可以从父类那里继承所有 非private的属性和方法作为自己的成员。 修饰符说明类的访问权限(public),是否为 抽象类(abstract)或最终类(final)
继承的实现 定义继承的形式为: [修饰符] class 类名 [extends 父类] { 类体 } Java中的继承是通过extends关键字来实现的, 在定义类时使用extends关键字指明新定义类的 父类,就在两个类之间建立了继承关系。新定 义的类称为子类,它可以从父类那里继承所有 非private的属性和方法作为自己的成员。 修饰符说明类的访问权限(public),是否为 抽象类(abstract)或最终类(final)
继承原则 子类继承父类的所有成员变量(包括实例和类成员变量)和除 构造方法外所有的防法(包括实例和类成员方法),但不包括 父类中的由private修饰的部分 ©子类不能继承父类的构造方法,因为父类的构造方法用来创建 父类的对象,子类需定义自己的构造方法,用来创建子类自己 的对象。 ©子类中新增加的属性和方法是对父类的扩展 国子类中定义的与父类同名的属性是对父类属性的隐藏,同名的 方法是对父类方法的覆盖
继承原则 子类继承父类的所有成员变量(包括实例和类成员变量)和除 构造方法外所有的方法(包括实例和类成员方法),但不包括 父类中的由private修饰的部分 子类不能继承父类的构造方法,因为父类的构造方法用来创建 父类的对象,子类需定义自己的构造方法,用来创建子类自己 的对象。 子类中新增加的属性和方法是对父类的扩展 子类中定义的与父类同名的属性是对父类属性的隐藏,同名的 方法是对父类方法的覆盖
Java实例 —成员变量的继承 子类在继承父类成员变量时,只继承父类中非私有的成员变量。 class Shape( public int x,y; private int m,n; public Shape(){ /父类Shape的构造方法 x=10;y=20: m=100;n=200; System.out.println("x="+x+""+"y="+y); System.out.println("this is a Constractor of shape"); } public void measure(){ int s; s=x*y; System.out.println("result="+s); private void show () System.out.println ("x="+x+""+"y="+y);
Java实例——成员变量的继承 子类在继承父类成员变量时,只继承父类中非私有的成员变量。 class Shape{ public int x,y; private int m,n; public Shape(){ //父类Shape的构造方法 x=10; y=20; m=100; n=200; System.out.println("x="+x+" "+"y="+y); System.out.println("this is a Constractor of shape"); } public void measure(){ int s; s=x*y; System.out.println("result="+s); } private void show(){ System.out.println("x="+x+" "+"y="+y); } }
Java实例_(续) class Rectangle extends Shape{ public static void main(String args[]){ int width=30,height=10; Rectangle tt=new Rectangle();//创建对象时要引用构造方法 tt.x=width; tt.y=height; tt.measure(); /width=tt.m; 对于Rectangle子类不能继承父类的私有成员变量 的值,所以此语句会产生语法错误*/ /height=tt.n; 与上相同 /tt.show(); //不能引用show()私有方法
Java实例——(续) class Rectangle extends Shape{ public static void main(String args[]){ int width=30,height=10; Rectangle tt=new Rectangle(); //创建对象时要引用构造方法 tt.x=width; tt.y=height; tt.measure(); /* width=tt.m; 对于Rectangle子类不能继承父类的私有成员变量 的值,所以此语句会产生语法错误*/ // height=tt.n; 与上相同 // tt.show(); //不能引用show()私有方法 } }