java中的重写总结
这个理解了就挺容易的~~
我就直接贴个程序啦 ,程序里有说明!!
父类:
1 package ParentAndSon; 2 3 public class Parent extends Object {//4:以final修饰的类不能别继承,3:Object是所有类的直接父类或间接父类 4 5 String sex="女"; 6 String name; 7 8 9 public Parent() { 10 11 } 12 13 public Parent(String sex, String name) { 14 this.sex = sex; 15 this.name = name; 16 } 17 18 protected static Object say(String name) { 19 System.out.println("父亲说话"); 20 return 0; 21 } 22 public void walk() { 23 System.out.println("父亲走路"); 24 } 25 }
子类:
1 package ParentAndSon; 2 3 import javax.management.remote.SubjectDelegationPermission; 4 5 //1:继承是根据已有类创建类的机制 6 public class Son extends Parent {//:2:java只支持单继承 7 8 String age; 9 10 public Son() { 11 super(); 12 } 13 14 15 public Son(String age) { 16 super(); 17 this.age = age; 18 } 19 20 //@Override 21 /*1:重写要求 方法名和方法参数列表(参数个数和参数对应的数据类型)必须相同 22 *2:重写的返回值a:如果是空或者基本数据类型,则子类返回值和父类一模一样 23 * b:如果是引用数据类型,则子类返回值类型和父类一样或者是他的子类 24 *3:访问权限,子类的访问权限和父类一样,或者大于父类的访问权限 25 *4:父类中被static final修饰的方法能被子类继承,但不能被重写,@Override可以判断是重写的方法还是一个新的方法 26 *5:父类中不是静态方法,子类中不能加static 27 * 28 */ 29 public static Integer say(String name) { 30 System.out.println("儿子说话"); 31 return 0; 32 } 33 //@Override 因为doHomework()方法不是重写的方法 所以出错 34 public void doHomework() { 35 System.out.println(sex); 36 System.out.println("儿子做作业"); 37 } 38 public static void main(String[] args) { 39 Son son = new Son(); 40 System.out.println(son.sex); 41 } 42 }