方法的重写:在继承中,存在重写的概念,
方法名称相同,返回值类型相同,参数相同。
当子类重写了父类方法之后,如果子类不强行调用父类
的话,是不会执行父类的。
例子:package com.jikexueyuan.extendsdemo;
class A{
public void tell(){
System.out.println("我是tell方法");
}
}
class B extends A{
public void tell(){
super.tell();//强制调用
System.out.println("我重写了tell方法");
}
}
public class ExtendsDemo04{
public static void main(String[] args){
B b=new B();
b.tell();
}
}
执行结果:我是tell方法
我重写了tell方法(如果没有super强制调用
的话,结果没有第一句。)
重写的限制:被子类重写的方法不能拥有比父类方法更加
严格的访问权限。
访问权限:private(只能在本类调用)<defaulf(
相当于没有写,能在本包内调用)<public(能在
整个工程内调用)也就是说:
假如父类中的方法用public声明,而子类如果用
private声明就不行,应为private比public权限严格,
子类也用public就可以。
super关键字:强行调用父类的方法的执行。
重载:Overloading.(发生在一个类中)
重写:Overriding.(发生在继承中)
方法名称相同,返回值类型相同,参数相同。
当子类重写了父类方法之后,如果子类不强行调用父类
的话,是不会执行父类的。
例子:package com.jikexueyuan.extendsdemo;
class A{
public void tell(){
System.out.println("我是tell方法");
}
}
class B extends A{
public void tell(){
super.tell();//强制调用
System.out.println("我重写了tell方法");
}
}
public class ExtendsDemo04{
public static void main(String[] args){
B b=new B();
b.tell();
}
}
执行结果:我是tell方法
我重写了tell方法(如果没有super强制调用
的话,结果没有第一句。)
重写的限制:被子类重写的方法不能拥有比父类方法更加
严格的访问权限。
访问权限:private(只能在本类调用)<defaulf(
相当于没有写,能在本包内调用)<public(能在
整个工程内调用)也就是说:
假如父类中的方法用public声明,而子类如果用
private声明就不行,应为private比public权限严格,
子类也用public就可以。
super关键字:强行调用父类的方法的执行。
重载:Overloading.(发生在一个类中)
重写:Overriding.(发生在继承中)