java的继承和封装

javaoop第1、2章

一、面向对象的三大核心思想

1.封装:保障数据的安全性
2.继承:减少代码的重复率
3.多态:提高代码的灵活性和扩展性

二、规范化创建类的步骤

这里我用宠物这个类作为父类 以及狗作为子类对象
ps:子类不可以继承父类的三个资源
1.私有化的属性和方法
2.构造方法(可以调用但是不属于子类)
3.当父类与子类不在同一个包下时默认权限的属性和方法无权继承
1.创建私有化的属性
关键字:private: private 只能在当前类中使用的权限
公共: public 任何地方都可以调用的权限
在这里插入图片描述
2.创建set/get访问器在这里插入图片描述
3.添加无参和带参构造
//添加构造方法:创建对象的时候后台会自动调用的方法
//特点:没有返回值的声明 2.方法必须和类名保持一致
//无参构造
public Dog(){}
//带参构造
public Dog(String name, int health, int love, String strain) {
super();
this.name = name;
this.health = health;
this.love = love;
this.strain = strain;
}
4.添加普通业务方法

三、方法重载的作用及标准

作用:解决方法的命名冲突问题
评判标准:同名同类不同参(和返回值.修饰符无关)
不同参:类型 顺序 数量
ex:pubic void a(String b,int c){}
pubic void a(int c,String b){}

四、静态修饰词static的用法及修饰符的四大权限

1.影响:可以使用类名和对象名调用静态属性和方法
ex:Dog gou1=new Dog();
gou1.age=49;
2.含义:静态代表全局共享
3.用法
a.静态属性:public static String name;
b.静态方法:public static void test(){}
c.静态代码块:static{代码} 类被加载的时候自动执行一次
Java中修饰符的四大权限的区别
在这里插入图片描述

五、类的继承

一、继承
1.作用:减少代码重复率,提高代码的复用性
2.步骤:
a.根据子类是一个父类的逻辑确定父类的名字
在这里插入图片描述
b.将子类共有的属性和方法定义在父类中
在这里插入图片描述
c.用extends表示父子关系
public class Dog extends pet{

}
d.在子类中定义自己特有的属性和方法
在这里插入图片描述

六、this和super关键字的用法及其注意事项

this和super
1.this:指代当前类的对象
2.super:指代当前类父类的对象
ps:super调用的是父类中的无参构造方法
3.用法:
a.调构造: super(); super(参数);
b.调属性:super.属性名;
c.调方法:super.方法名();
在这里插入图片描述
4.注意事项:
a.super调用构造方法时必须位于代码的第一行,否则报错!
b.super调用属性和方法时注意权限问题

七、方法重写

1.重写:子类改造父类当中已经存在的某个方法
2.规则:
a.同名
b.同参
c.不同类
d.方法的权限不能缩小
e.返回值要么相同要么是父子类关系
父类中没有jiao的方法 可以通过方法重写来实现
/* //重写叫的方法
public void jiao(){
System.out.println(“狗汪汪叫~~~~”);
}*/

八、抽象类及抽象方法

八、抽象类
1.标准:当提到这个词时每个人联想的东西区别会很大
2.特点
a.使用abstract修饰
在这里插入图片描述
b.不能使用常规方式创建对象
c.抽象类可以包含抽象方法和普通方法,而普通类只能包含普通方法

九、抽象方法

1.标准:某个方法的实现没有实际意义
2.特点
a.使用abstract修饰
b.抽象方法没有方法体{}
c.抽象方法必须定义在抽象类或者接口中
d.父类中的抽象方法要求所有子类强制重写改造,除非子类也是抽象类

十、final的用法:终极版

1.final修饰类代表断子绝孙不可继承 2.final修饰方法代表不可以被改造重写 3.final修饰变量代表值不可修改 4.final和abstract互相矛盾 不可同时出现 否则报错!!!