封装
访问修饰符:public protected default private
1、私有化属性
2、公开的方法
3、加入限制条件
private String name;
private int age;
public int getAge() {
if(age>30){
System.out.println("年龄太大");
return 18;
}
return age;
}
public void setAge(int age) {
if(age>50){
System.out.println("年龄过长");
this.age = 50;
}else{
this.age = age;
}
this.age = age;
}
继承 extends
//系统默认调用无参数父类构造器super();
//只能在子类的构造器中调用,必须在构造器的第一行。
//调用父类属性、方法、构造器
super.属性名;
super.方法名();
super(“”); 有参数的构造方法
注:初始化子类必须先初始化父类。
public Student(){
super("str");
}
public void study(){
super.sleep();
System.out.println(super.age);
多态
含义:父类的引用指向子类的对象,调用同样的方法产生的结果不同。
1、覆盖 重写
子类重写父类的方法
1、方法的名称相同
2、返回值类型相同
3、参数列表相同
4、访问修饰符不能比父类更严格
package com.lingzhuo.animal;
public class Animal {
//父类的方法
public void voice() {
this.sleep();
System.out.println("动物叫");
}
//子类的方法
public void voice() {
System.out.println("汪汪汪汪");
}
public void voice(int age) {
System.out.println("看见人摇尾巴");
}
public void voice(String name) {
System.out.println("看见" + name + "立刻咬他");
//测试类中,调用的方法
Dog dog = new Dog();
dog.voice();
dog.voice(18);
dog.voice("张三");
dog.sleep();
2、重载
同一类中,方法名相同,参数列表不同。
public void voice() {
System.out.println("汪汪汪汪");
}
public void voice(int age) {
System.out.println("看见人摇尾巴");
}
static的用法
修饰属性,就叫类的属性
格式:类名.属性名
final相关
final class
最终的类,不允许被继承
final method
最终的方法,不允许被覆盖
final 变量
常量
常量命名规则:全部大写,下划线隔开。