Java中的三大特征:封装、继承、多态
封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式。
封装好处:安全、方便、能隐藏。
封装步骤
1、 先用private修饰
2、 调用set方法。
3、 需要的话,再调用get方法。
public和private区别!
Public:它修饰的东西任何都可以访问
Private:它修饰的东西只能在本类中直接访问,如果其他类要访问,需要set和get方法。
封装格式
set方法:使用set方法,可以实现具体细节
get方法:使用get方法,对外提供公共的访问方式
封装案例
继承:子类需要父类的属性和行为,通俗理解“共性抽取”,关系:is - a。
继承格式
class 子类 extends 父类{
}
继承注意
1、 非继承关系不能继承。
2、 父类私有的不能继承。
3、 父类构造函数不能继承。
重写:方法的重写(方法名称一样,返回值范围<=父类,参数列表一样)
细节1:子类的修饰符范围>=父类修饰符范围
细节2:Java不可以直接多继承,但可以间接多继承
举例:父亲要吃树皮,儿子不想吃树皮,儿子想要吃大餐,这里就可以用重写。
父类{
public void eat(){
System.out.println("吃树皮");
}
}
子类{
public void eat(){
System.out.println("吃大餐");
}
}
多态:父类或者接口的引用变量指向子类或实现类的实例对象
一、操作符多态
举例
同一个操作符在不同情境下,具备不同的作用
如果+号两侧都是整型,那么+代表 数字相加
System.out.println(1+2);
如果+号两侧,任意一个是字符串,那么+代表字符串连接
System.out.println("1"+5);
二、多态+继承
1、子类继承父类,对象是多态,访问普通方法,看等号右边
Fu obj = new Zi();
obj.method();//打印结果是子类内容
2、子类继承父类,对象是多态,访问成员变量,看等号左边
Fu obj = new Zi();
System.out.println(obj.name);//打印结果是父类
三、对象多态:向上和向下转型
1、对象向上转型
写法:Animal animal = new Cat();
2、对象向下转型
写法:Animal animal = new Cat();
Cat cat = (Cat) animal//向下转型的子类只能转猫,不可转其他动物
类的多态条件:
1、 父类(接口)引用指向子类对象
2、调用的方法有重写
3、必须有继承
多态口诀
成员变量:编译看左边(父类),运行看左边(父类)
成员方法:编译看左边(父类),运行看右边(子类)
静态方法:编译看左边(父类),运行看左边(父类)
多态向上转型和向下转型:
向上转型:父类 p1 = new 子类();
向下转型:子类 p2 = (子类)父类;
多态的好处与弊端:
好处:提高代码的维护和扩展
弊端:不能使用子类特有的属性和方法