笔记第十一天

访问修饰符:
private 私有的 在哪个类中只能在类内部可以用
只能修饰属性、方法

默认 包内可见,在同一个包内类之间可以互相使用

protected 受保护的 允许其子类使用

public 公共的 同一项目内

类内部 同一包内的其他类 同一包内的子类 不同包的其他类 不同包的子类
private √ × × × ×
default √ √ √ × ×
protected √ √ √ × √
public √ √ √ √ √
子类继承了父类的哪些成员?
1、public
2、protected
3、同一包内的默认成员

this
super
static

this : 是系统自动new出的一个对象,当前类的对象,值是变动的
通过哪个对象来调用方法,this就是哪个对象

super: 是系统自动定义的当前类的父类对象,值也是变动的

static 静态的,使用static修饰的成员在程序运行后自动加载到内存的静态区域中
无需new ,当程序关闭后,清空所占静态内存
Demo2.java
static 可以修饰属性: 静态变量
static 可以修饰方法: 静态方法
static 可以修饰代码块

不能修饰类 不能修饰局部变量 *****重要

static成员的访问:
static 属于类 不属于对象
类名.静态成员
Demo3.java

抽象方法:只有方法头,没有方法体(没有{}),需要使用abstract来修饰
抽象方法必须声明在抽象类中
抽象类:使用abstract修饰的类
不能被new 不能被实例化
【面试题】抽象方法所在的类一定是抽象类,抽象类中不一定非得有抽象方法

子类继承父类后,如果父类是抽象的,那么必须实现父类中的所有抽象方法

方法重写:在子类中实现父类中的抽象或虚方法
特点: 方法头相同
在子类中
Demo4.java

Employer:
id name age
work();

Animal
叫()

电子宠物系统
Dog name sex age strain
Cat name sex age address
优化
父类:Pet name sex age
// 方法:public abstract void eat();

Dog extends Pet
strain
eat

Cat extends Pet
address
eat

Master 主人
name
喂养方法feed

问题:在Master中,feed太多了,有一种宠物,增加一个feed方法,麻烦
解决问题:使用多态
多态的实现方式是方法重写
1、在父类中编写抽象方法
2、在子类实现父类的抽象方法
3、使用时,用父类作为类型

1、人类 吃饭方法 抽象的
2、中国人类
实现 吃饭方法 用筷子吃

美国人类
实现 吃饭方法 用刀叉吃

3、 聚餐方法(人类 对象)

Dog wangcai=new Dog();
Pet wangcai=new Dog();//多态 父类的类型指向之类的应用

posted @ 2019-04-03 19:45  朱浩楠  阅读(124)  评论(0)    收藏  举报