1.继承
1)何为继承? 即指子类拥有父类的所有属性与方法,构造函数除外
2)优点
1.提高代码复用率 2.降低代码耦合度 3.提高代码可阅读性
3)继承关系:父类:提取多个对象的共同属性而形成的类
4)语法: 访问权限修饰符 class 子类名 extends 父类名{}
5)重写 要求
1)在继承关系中
2)子类重写父类方法,访问权限修饰符不可减小.返回值类型相同 方法名相同 形参列表相同 方法体不同
6)重载:在一个类中 两个方法的方法名相同,而形参列表必须不同
7)注意
1.一个子类只能继承一个父类
2.如果一个类没有继承则默认继承object
2.super的使用
1).当子类方法名与父类方法名相同时,用super加以区分父类方法名 即super.方法名(形参列表)
2)当子类重载方法时,用super加以区分父类属性并用super进行调用 即 super.属性名
3)当子类调用父类构造函数时用super 即super(实参列表),且调用时必须在第一行调用
3.封装
1).作用域:变量和方法作用的范围
2).访问权限修饰符:限定类 属性 方法 构造函数的使用范围
种类
public 用于整个项目
protected 同包或继承关系中
默认的 同一个包中
private 当前类中
对于一个标准类中属性方法构造函数修饰符的使用
1)私有化属性
2)提供两个构造函数,一个无参一个全参,使用public修饰
3)给所有属性提供get和set方法,get用于获取属性 set用于设置属性,(快捷键 Alt+shift+s,选择get and set)
get set的区别:
get中有返回值,因此需要在方法中设置返回值类型,且用return+数据即
set中返回值类型为空且需要传参
4)重写tostring方法
标准类的格式
public class 类名{
//修饰属性
private String name ;
private String gender ;
private int age ;
//修饰构造函数
public 类名(形参){
super() ;
this.name = name ;
this.gender = gender;
this.age = age ;
}
//无参构造
public 类名(){
super();
}
//get set的快捷键 Alt+shift+s
//get方法 注意get有返回值类型,且无形参,需return+数据进行返回数据
public String getName(){
return name;
}
//set方法 注意set需要传参但无需返回值
public void setName(形参列表){
this.name = name ;
this.gender = gender ;
}
}
4.多态
1)意义:一个事物的多种展现形式
2)事(方法)的多态:重写与重载(父类方法中的sleep和子类中的sleep除方法体不同以外其他均相同,体现了睡的两种状态 重载:在同一类中两种不同的睡法)
3)物(对象)的多态:(涉及在main方法中子类对象转父类对象 和 父类对象转子类对象)
父子转换的意义:子转父指将子类对象直接赋值给父类对象
//子类对象转父类对象自动转换
//子类对象转为父类对象,调用重写后的方法,还是执行子类重写的方法
Anim anim = person ;
//父类对象转子类对象强制转换,且强制转化有风险需要用instenceof判断
Person person = (Person)anim ;
//判断对象是否属于该类语法
if(anim instenceof Person){sout("是人类对象")}
5.包装类
1)八个基本数据类型对应的类
除了int 和char分别是 Integer 和 Character 外其他都是首字母大写
2)自动装箱:将基本数据类型变量赋值给对应的类修饰的变量
3)自动拆箱:将类修饰的变量赋值给基本数据类型变量