java-封装继承多态
封装概念:
隐藏内部的方法和属性,不允许外部直接访问,只允许通过方法进行访问
封装代码例子:
class Stu1{
//属性:学号、姓名、性别、年级、所在班级
int id;
//封装操作步骤:第一步
private int age;
// 第二步:编写对应的赋值set和取值get方法
public void setAge(int age){
if(age>=0 &&age<=100){
//将局部变量的值赋给成员变量
this.age=age;
}else{
this.age=18;
}
}
//返回成员变量的值
public int getAge(){
return age;
}
}
class Test1{
public static void main(String[] args) {
Stu1 stuTest1 =new Stu1();
stuTest1.setAge(-1);
System.out.println("输出年龄:"+stuTest1.getAge()
);
}
}
继承概念:
将相同的属性 和 方法 写在一个类中,如果其他类要使用,继承该类就好了;继承解决了重复代码
父类也叫做超类(基类),子类也叫做派生类
继承注意事项:
1)子类继承父类,不能继承父类的构造方法
2)继承满足条件:子类(猫)也是动物(父类)
3)继承具有两大特性:1个类只能继承1个直接的父类 ,类具有传递性
4)构造方法不能重写,属性也不能重写,静态方法也不能重写、private私有方法也不能重写
5)如果子类重写了父类的方法 要使用父类的方法,只能使用 super.方法名
实例化子类中父类做了什么:
先执行父类的构造方法,在执行子类的相匹配的构造方法,子类构造方法没有指明则使用父类默认无参构造,子类构造指明了父类的构造方法则使用指明的构造方法
多态概念:
将多个对象调用同一方法,得到不同的结果
满足条件:
子类必须继承父类;子类必须重写父类的方法;
语法格式:Vehicle v = new Car(); //父类类名 引用名称 = new 子类类名();
当是多态时,引用名称 只能访问父类中的属性和方法,但是优先访问子类重写后的方法

多态中的两种类型转换:
1、向上转型:Vehicle v = new Car();父类类名 引用名称 = new 子类类名();
2、向下转型:当是多态时,并且访问子类 的独有方法或属性,必须向下转型
当进行向下转型时,先进行判断,当合法则在进行转型 使用instenceof关键字 否则可能会出现类型转换异常 java.lang.ClassCastException;
例子:


浙公网安备 33010602011771号