Day10 面向对象的三大特性
第一节:封装
尽可能的隐藏类的内部实现细节,修改属性的修改和访问权限。
把赋值过滤的语句存放在指定的类的内部方法里。
1.1实现封装
1.属性修饰符修改为 private//私有
2.为private修饰的私有属性,提供公开的访问方法 set(赋值)/get(取值)
class Dog{
private String breed;
private String sex;
//公共的访问方法
public void setBreed(String breed){
this.breed = breed;
}
public String getBreed(){
return this.breed;
}
public void setSex(String sex){//可以在赋值之前加控制,且控制只在该类能看到
this.sex = sex;
}
public String getSex(){//取值,直接返回当前私有的属性的值
return this.sex;
}
}
第二节:继承
程序中的继承,是类与类之间特征和行为的一种赠与或获得
两个类之间的继承关系,必须满足 is a的关系
功能越精细,重合点越多,越贴近直接父类
功能越粗略,重合点越少,越贴近object类(万物皆对象的概念)
在实际应用过程中,可根据程序需要使用到的多个具体的类,进行共性抽取,进而定义父类。
在一组相同或类似的类中,抽取出共性的特征和行为,定义在父类中,实现重用
继承语法
class 类名 extends 父类{}//定义子类时,显示继承父类
应用:产生继承关系后,子类可以使用父类中的属性和方法,也可定义子类独有的属性和方法。
既能提高代码的复用性,又提高代码的可扩展性。
继承的特点:
java当中为单继承,一个类只能有一个直接父类,但是可以多级继承,属性和方法逐级叠加(越来越多)
不可以继承的:
构造方法:类中的构造方法,只负责创建本类对象,不可继承
private修饰的属性和方法:仅在本来中可见。
父子类不在同一个package中时,default修饰的属性和方法:仅同包可见
请简单回答java当中访问修饰符?
有四个
private 在本类当中可以使用,其他情况下均访问不到
default 在本类以及同包下,可以使用。非同包子类以及其他情况下,均访问不到
protected 在本类、同包、非同包子类可以使用,其他情况均访问不到
public 权限最大。本类、同包、非通报子类、其他均可以使用。
第三节:方法的重写
当父类定义的方法无法满足子类需求时,子类可以定义与父类完全相同的方法,完成覆盖,从而实现自己特定的功能。
覆盖的原则:
方法名称、参数列表(个数、顺序、类型)、方法的返回值类型要与父类完全一致
方法的访问修饰符要么和父类一样,要么比父类更宽泛,private例外!
功能。
覆盖的原则:
方法名称、参数列表(个数、顺序、类型)、方法的返回值类型要与父类完全一致
方法的访问修饰符要么和父类一样,要么比父类更宽泛,private例外!
来源:CSDN
作者:Syntactic_suger
链接:https://blog.csdn.net/Syntactic_tang/article/details/103756218