十三.覆写:
1.方法覆写:
(1)子类继承父类,但也可能出现不合适
子类发现父类设计不足并且需要保留父类中的方法的属性和名称,此时就要进行方法覆写。
方法覆写:跟父类方法一样
eg:观察方法覆写:
class Channel { public void connect(){ System.out.println("[Chnanel父类]进行资源的连接"); } } class DatebaseChannel extends Channel { public void connect(){ System.out.println("[子类]进行数据库资源的连接"); } } public class stringdem{ public static void main(String args[]) { DatabaseChannel channel = new DatabaseChannel(); channel.connect(); } }
(2)覆写意义:
(3)如果子类已经覆盖,要调用父类中的方法,使用super.方法
class Channel { public void connect(){ System.out.pringln("[Channel]资源链接"); } } class DatebaseChannel extends Channel { public void connect(){ super.connect(); System.out.println("[子类]进行数据库资源的连接"); } } public class Stringdemo{ public static void main(String args[]) { DatabaseChannel channel = new DatabaseChannel(); channel.connect(); } }
2.方法覆写的限制:
(1)被覆写的方法不能有比父类方法更为严格的访问控制权限:
public>default(不写)>private
private除了可以定义属性,也可以定义在方法上:
private类不可见,所以不牵扯覆写
在以后的实际开发中只要是定义方法,百分之九十五都是用public
(3)属性覆盖:
子类定义了与父类相同名称的成员。
(4)final关键字:
final在程序中表示终接器
final:不能被继承的类
不能被覆写的方法
常量
eg:不能被继承的类:
final class Channel(){}
eg:不能被覆写的方法:
public final void fun(){}
重点!!!!
定义常量不可修改:
private final int ON = 1; //用1表示开关打开 private final int OFF = 0; //用0表示开关闭合
以上ON,OFF均不可以被修改。