Java笔记(五)继承(方法重写,抽象类,访问修饰符/权限控制符)

继承(extends):

1)结构:
子类(衍生类/扩展类) extends 父类(基类)

2)继承的特点:

a.子类继承父类,会继承父类中所有的成员变量 和 成员方法
b.子类直接继承唯一一个父类
    如果没有写,就会默认继承Object
    除了直接继承父类,也可以 间接继承 Object
c.子类可以拥有自己的独有的成员变量和成员方法
    所以子类功能一定比父类强大
d.一个父类可以有多个子类
    但是子类和子类之间本质上没有任何关系
    唯一关系就是有共同的父类

特殊情况:
a.如果 父类和子类的成员变量相同
例如: name
那么使用时,用的就是子类中的name

如果一定想要用到父类中的成员变量,那就是用super调用

建议:如果存在父子类关系,那么建议成员变量不要同名
因为一定会有一个值赋值不到

b.子类中可以引用父类对象
c.创建子类对象前,会先创建父类对象
加载子类之前,会先加载父类
d.构造方法:
使用子类构造方法前,一定会默认调用父类的无参构造方法

子类不能继承父类中的构造方法,只能调用.

2.super关键词
1)表示父类对象
2)使用子类对象构造方式时,会默认调用父类的无参构造方法
使用super()调用
3)如果父类中没有无参构造方法,可以手动调用父类中的有参构造方法
使用super(参数)
4)在构造方法中使用时,只能放在构造方法的第一行

3.this关键词 和 super关键词的区别

this表示当前对象
super表示父类对象

方法的重写(Override)

1)前提条件:
必须要存在父子类关系
2)语法:
方法的修饰词、方法的返回值类型、方法的名字 和方法的参数必须和父类中的方法一致,叫做方法的重写

方法的重写(Override) 和方法的重载(Overload)的区别
前提条件:
重写:在父子类中
重载:同一个类中

抽象类

1)抽象类:

a.用abstract修饰的类叫抽象类
b.一个类中有抽象方法,那这个类就一定是抽象类
c.抽象类不能new对象,也就是不能实例化
但是能创建子类对象
d.抽象类也有构造方法,就是为了方便子类使用

判断:

有抽象方法的类就是抽象类 √
抽象类就是有抽象方法的类 ×
抽象类中可以没有抽象方法 √

2)抽象方法:

a.出现的前提:

所有的子类都重写了父类中的方法,那就意味着父类中重写的方法的方法体没有任何意义,可以去除

b.特点:

1.用abstract修饰的并且没有方法体的方法,叫做抽象方法
2.抽象方法只能存在抽象类中
3.非抽象的子类继承抽象类,就必须重写抽象类中的所有抽象方法
否则,就把类变成抽象类 -> 加 abstract

3)成员变量不能变成抽象的,因为已经确定了变量的类型

访问修饰符/权限控制符

public:公开的,公共的
protected:受保护的
(default):默认的,default修饰词是不用写的
private:私有的

可以修饰的地方: 类/成员变量/成员方法/构造方法

访问修饰符范围: public -> protected -> default -> private

public:想让所有类都可以使用的时候
protected: 只存在父子类关系时使用
default:不常用
private:类中普通成员都可用

同类中:
同包中(类和类之间没有任何关系的类):
父子类中(不是同包中的父子类关系):
所有类中:

封装

1)为了成员变量的安全性,把成员变量私有化,也就是添加private修饰词
2)给外部提供一套可以访问私有化的成员变量的方法

	get():获得
	set():设置

实体类 -> JavaBean规范:

1.类名 -> 驼峰命名法
2.必须把成员变量私有化 -> 提供一对get/set方法
3.添加无参构造器

快速获取返回值: Alt + Enter
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值