java final修饰抽象类_java-08(权限修饰符、重写、super和final、Object、equals、多态、抽象类)...

(一)权限修饰符

访问权限:

本类 同包类 不同包子类 不同包其他类

私有的 private √

默认的 default √ √

受保护的 protected √ √ √

公共的 public √ √ √ √

注意:

l 以上四个权限修饰符都是成员修饰符(成员变量,成员方法),不能修饰局部变量和方法

l 被private修饰的内容不能被继承

l public和default(不能显示定义)能够修饰类

l 设计面向对象的原则之一: 开闭原则(对修改关闭,对扩展开放)

(二)重写

1) 重写和重载的区别:

重载 :

1.同一个类中 2.多个方法的方法名相同3.方法签名不同

重写 :

1.不同的类 2.继承 3.方法签名相同

2) 子类中一旦方法重写,会对父类中同名的进行屏蔽

3) 如果子类有重写父类中的方法,调用时会调用子类中重写的方法

4) 检测重写方法的方式:

1.左边有向上的三角

2.在重写方法的上面添加一个注解 @Override

5) 重写满足|注意的条件:

a. 方法签名相同

b. 返回值类型: 基本数据类型:子父类必须相同

引用数据类型:子类<=父类

c. 权限修饰符: 子类>=父类

注意:

1. 被private修饰的方法不能被重写

2. 被final修饰的方法不能被重写

3. 被static修饰的方法不能被重写

4. 如果子类中存在于父类静态方法重名的方法,记住要把子类中这个方法定义为静态的

(三)super和final

super: 指代父类对象

this: 指代当前创建对象

1) 用在构造器的首行可以掉用父类中的构造器

super(参数)-->匹配父类中构造器的参数

如果没有显示定义,默认在子类构造器的首行存在super(),默认调用父类的空构造

2) 区分子父类同名问题

如果存在同名问题,默认隐藏this,默认就近原则找当前子类中的,如果想要指定父类中,要使用super调用

注意:

先父类后子类,不能显示同时定义this()和super(),因为都要存在于构造器的首行,但是可以隐式同时使用,默认调用父类空构造,显示调用子类其他构造器

就近找局部,然后如果同时存在局部,子类成员,父类成员同名问题,默认找局部,子类成员this,父类成员super

final(最终的)

a. 被final修饰的变量为常量,不能改变

b. 被final修饰的方法,不能被重写

c. 被final修饰的类不能被继承(太监类)

(四)Object

Object 所有类的父类(老祖宗类),在java中的所有类都会直接或者间接的继承自Object

(五)Equals

a. ==(双等号)比较地址

b. equals : 可以比较对象的内容是否相同,equals在Object中默认比较的还是对象的地址

c. equals比较字符串,对象格式: a.equals(b)

(六)多态

1) 多态,一种事物多种形态|多种表现形式

2) 多态的前提: 类的继承 | 接口的实现

3) 多态的最终体现: 父类的引用指向子类的对象

4) 多态的目的: 父类的引用在调用子父类中同名方法的时候,会调用子类中重写的方法

5) 向上、向下转型

父类引用指向子类对象(向上转型)

此后,子类对象再强转为子类对象(向下转型)

注意:

l 子类中新增的方法对父类不可见

l 多态使用成员:

成员变量:编译运行找父类

成员方法:编译看父类,运行看子类,或看做编译看类型,运行找对象

(七)抽象类

a. 类和方法要被abstract修饰

b. 抽象方法继承后必须重写,一般在多个事物有相同功能,不同实现的时候,向上提取出一个抽象方法

c. 抽象类不能创建对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值