一.继承
在面向对象程序设计中,继承的实体是类,也就是说继承是子类拥有父类的成员。
1.继承的实现
在Java语言中,继承通过extends关键字来实现。也就是用extends指明当前类是子类,并指明从哪个类继承而来。即在子类的声明中,通过使用extends关键字来显式地指明其父类。其基本的声明格式如下:
【修饰符】 class 子类名 extends 父类名{
类体
}
修饰符:可选参数,用于指定类的访问权限,可选值为public、abstract和final。
子类名:必选参数,用于指定子类的名称,类名必须是合法的Java标识符。一般情况下,要求首字母大写。
extends 父类名:必选参数,用于指定要定义的子类继承于哪个父类。
2.继承中的重写
重写是指父子类之间的关系,当子类继承父类中所有可能被子类访问的成员方法时,如果子类的方法名与父类的方法名相同,那么子类就不能继承父类的方法,此时,称为子类的方法重写了父类的方法。重写体现了子类补充或者改变父类方法的能力。通过重写,可以使一个方法在不同的子类中表现出不同的行为。
子类对父类的继承:
1 package org.hanqi.pn0120; 2 3 public class Father { 4 5 6 private String name; 7 8 private int age; 9 10 public String getName() { 11 return name; 12 } 13 14 public void setName(String name) { 15 this.name = name; 16 } 17 18 public int getAge() { 19 return age; 20 } 21 22 public void setAge(int age) { 23 this.age = age; 24 } 25 26 public Father() 27 { 28 System.out.println("父亲的构造方法"); 29 } 30 31 //工作 32 public void work() 33 { 34 System.out.println("我劳动我光荣"); 35 } 36 }
1 package org.hanqi.pn0120; 2 3 public class TestJiCheng { 4 5 public static void main(String[] args) { 6 7 // 8 Father f=new Father(); 9 10 f.setName("父亲"); 11 12 f.setAge(50); 13 14 System.out.println("名字是 "+ f.getName()+" 年龄是 "+ f.getAge()); 15 16 f.work(); 17 18 System.out.println(); 19 20 Son s=new Son(); 21 22 s.setName("儿子"); 23 24 s.setAge(20); 25 26 System.out.println("名字是 "+s.getName()+" 年龄是 "+ s.getAge()); 27 28 s.work(); 29 30 s.sing(); 31 32 } 33 34 }
1 package org.hanqi.pn0120; 2 3 public class Son extends Father { 4 5 //Object a;所说类的父类 6 7 public Son() 8 { 9 System.out.println("子类的构造方法"); 10 } 11 12 public void sing() 13 { 14 System.out.println("我喜欢唱歌"); 15 } 16 17 //覆盖(重写) 18 public void work() 19 { 20 System.out.println("我不喜欢上班,我要去参加海选"); 21 } 22 23 24 }