***类的继承***
1.继承的实现extends
2.[修饰符] class 子类名 extends 父类名{}
3.修饰符一般为:public abstract final
4.重写是指父子类之间的关系,子类的方法名与父类的方法名相,那么子类就不能继承父类的方法,称子类的方法重写了父类的方法。
5.重写体现了子类补充或者改变父类方法的能力。通过重写,可以使一个方法在不同的子类中表现出不同的行为;
6.重写民可以称为覆盖;
***使用super关键字***
1.子类可以继承父类的非私有成员变量和成员方法(非private)作为自己的成员变量和方法;
2.如果子类与父类成员变量同名,子类不能继承父类的成员变量,称:子类的成员变量隐藏了父类的成员变量;
3.如2.换成方法,称:子类成员方法重写了父类的成员方法;
4.这时,想在子类中访问父类中被隐藏的成员方法或变量,就可以用super;
5.两种用途:
a.调用父类的构造方法;子类可以调用由父类声明的构造方法,必须使用super调用;【必须写在构造方法体中吗???是的】
super([参数列表]);
应该为构造函数中的第一条语句;
b.操作被隐藏的成员变量和被重写的成员方法;
super.成员变量名
super.成员方法名([参数列表])
问题:super. 可以不在构造方法中使用吗
1 /** 2 * @author: liu_y 3 * @Date: 2016年7月3日 4 * @Title:继承、继承中的重写 5 */ 6 /**********继承的实现**************/ 7 class Bird{ 8 String color="white"; 9 String skin="羽毛"; 10 } 11 class Pigeon extends Bird{ 12 public void pColor(){ 13 Pigeon p=new Pigeon(); 14 System.out.println("鸽子继承的鸟类的属性,颜色是:"+p.color); 15 } 16 } 17 /**********继承中的重写**************/ 18 class Animal{ 19 public Animal(){ 20 } 21 public void cry(){ 22 System.out.println("动物发出叫声!"); 23 } 24 } 25 class Dog extends Animal{ 26 public Dog(){ 27 } 28 public void cry(){ 29 System.out.println("狗发出“汪汪汪”的叫声!"); 30 } 31 } 32 class Cat extends Animal{ 33 public Cat(){ 34 } 35 public void cry(){ 36 System.out.println("罗小黑发出“喵喵喵”的叫声!"); 37 } 38 } 39 class Sheep extends Animal{ 40 41 } 42 /**********使用super关键字**************/ 43 class Beast{ 44 String skin; 45 public int age; 46 public Beast(){ 47 } 48 public Beast(String skin){ 49 this.skin=skin; 50 } 51 public void move(){ 52 System.out.println("跑"); 53 } 54 public String getSkin(){ 55 return skin; 56 } 57 } 58 class Tiger extends Beast{ 59 public Tiger(){ 60 super("条纹"); //使用父类的带参数的构造方法,必须写在构造方法体中吗??? 61 super.age=8; 62 super.move(); 63 } 64 65 public int getAge(){ 66 return super.age; 67 } 68 69 70 } 71 72 public class Hello2Extends { 73 74 public static void main(String[] args) { 75 // TODO Auto-generated method stub 76 //继承的实现 77 System.out.println("继承的实现:"); 78 Pigeon p=new Pigeon(); 79 p.pColor(); 80 81 //继承中的重写 82 System.out.println("\n继承中的重写"); 83 Dog dog=new Dog(); 84 Cat cat=new Cat(); 85 Sheep sheep=new Sheep(); 86 System.out.println("执行dog.cry()时的输出结果:"); 87 dog.cry(); 88 System.out.println("执行cat.cry()时的输出结果:"); 89 cat.cry(); 90 System.out.println("执行sheep.cry()时的输出结果:"); 91 sheep.cry(); 92 93 //使用super关键字 94 System.out.println("\n使用super关键字"); 95 Tiger tiger=new Tiger(); 96 System.out.println("老虎的皮肤是:"+tiger.getSkin()+";年龄是:"+tiger.getAge()); 97 98 } 99 100 }
输出结果:
1 继承的实现: 2 鸽子继承的鸟类的属性,颜色是:white 3 4 继承中的重写 5 执行dog.cry()时的输出结果: 6 狗发出“汪汪汪”的叫声! 7 执行cat.cry()时的输出结果: 8 罗小黑发出“喵喵喵”的叫声! 9 执行sheep.cry()时的输出结果: 10 动物发出叫声! 11 12 使用super关键字 13 跑 14 老虎的皮肤是:条纹;年龄是:8
时间: 2024-10-24 14:46:35