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;

例子:

posted @ 2021-08-09 18:24  只要不兔的学习笔记  阅读(179)  评论(0)    收藏  举报