覆写

1、子类继承父类后,覆写父类中方法(方法名、参数、返回值均相同),覆写的目的在于优化父类的功能。

2、在子类进行方法覆写之后,如想要继续调用父类中的方法,需使用“super.方法”

3、被覆写的方法不能够拥有比父类更为严格的访问权限。public>default(不写)>private

注:

package com.demo;

class Channel {
    private void connect() {
        System.out.println("父类方法");
    }
    public void fun() {
        this.connect(); //调用本类方法
    }
}
class DataChanner extends Channel {
    //此时并不是一个覆写,因为父类connect()方法不可见,这个方法对于子类而言是一个新定义的方法
    public void connect() {
        System.out.println("子类方法");
    }
}

public class FuXie {
    public static void main(String[] args) {
        DataChanner channel = new DataChanner();
        channel.fun();
    }

}

4、【重要】

Overloading-重载 -方法名称相同,参数类型、返回值不同 -没有权限限制-发生在一个类中

Override-覆写-方法名称、参数类型、返回值均相同 - 被覆写的方法不能够拥有比父类更为严格的访问权限-发生在继承关系类中

在进行方法重载的时候并没有对返回值类型做出限制,但是好的习惯应该保持返回值类型一致。

5、属性覆盖

子类定义了与父类相同名称的成员,此时若要访问父类中属性,需用“super.属性名”

【重要】super与this的区别?

在程序类中使用this表示先从本类中查找所需要的属性或方法,如果本类中不存在则查找父类定义,如果使用super则表示不查找子类,直接查找父类。

this和super都可以进行构造方法的调用,但是this()调用的是本类构造,super()调用的是父类构造。两个语句都必须放在构造的首行,所以不能同时出现。

this可以表示当前对象。

6、fina关键字

final在程序中描述的是终结器的概念,在java里使用final关键字的功能:定义不能被继承的类;定义不能被覆写的方法和常量

在final关键字里面有一个重要技术,可以利用其定义常量,常量的内容一经定义不可修改,常量往往都是公共的,所以常见形式是全局常量

public static final ON = 1;

public static final OFF = 0;  //常量大写

利用静态池的概念验证常量:

package com.demo;

public class Pool {
    public static void main(String[] args) {
        final String INFO = "aaa.";
        String str1 = "aaa.b";
        String str2 = INFO + "b";
        System.out.println(str1 ==str2);
    }

}
输出:true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值