加载中...

[2022.10.18]封装,继承,多态

封装是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。

封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。

要访问该类的代码和数据,必须通过严格的接口控制

封装的作用:提高程序的安全性,保护数据 2.隐藏代码的细节 3.统一接口 4.提高维护性

🥦

 

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

1.子类拥有父类非 private 的属性、方法。

2.子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。

3.子类可以用自己的方式实现父类的方法。

4.Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 B 类继承 A 类,C 类继承 B 类,所以按照关系就是 B 类是 C 类的父类,A 类是 B 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。

5.提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。

ctrl+h快捷键可以打开idea的继承树
1.Java中 所有的类都默认直接或间接继承object类
2.Java只能单继承 一个子类只能有一个父类
3.私有类不能被继承

🥦

 

多态是同一个行为具有多个不同表现形式或形态的能力。

多态就是同一个接口,使用不同的实例而执行不同操作

多态注意事项:
1.多态是方法的多态,属性没有多态
2.父类和子类,有联系类型转换异常 classCastException 
3.存在条件:1.继承关系,2.方法需要重写,3.父类引用指向子类对象 Father p = new Son( );
🥦

super与this

super注意点
1.super调用父类的构造方法,必须在构造方法的第一个
2.super必须出现在子类的方法或者构造方法中
3.super和this不能同时调用构造方法

和this相比

代表的对象不同:
this:本身调用者这个对象
super:代表父类对象的应用
前提:
this:没有继承也可以使用
super 只能在继承条件才可以使用
构造方法:
this():本类的构造
super():父类的构造

🥦

构造器就是构造方法

类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:
1.必须和类的名字相同
2.必须没有返回类型,也不能写void

构造器:
1.和类名相同
2.没有返回值
作用:
1.new 本质是在调用构造方法
2.初始化对象的值
注意点:
1.定义有参构造后,如果想使用无参构造,显式的定义一个无参的构造

alt+insert快捷键生成构造器(idea)

构造器
public class constructor01 {

    public static void main(String[] args) {
        Person person = new Person();

    }
}


class  Person{
    int age;
    String name;

    //无参构造。
    public Person(){
        System.out.println("这是无参构造!");
    }

    //有参构造。
    public Person(int pAge){
        age=pAge;
    }
    public Person(String pname,int pAge){
        name =pname;
        age=pAge;
    }

}

构造器最大的用处就是在创建对象时执行初始化,当创建一个对象时,系统会为这个对象的实例进行默认的初始化。如果想改变这种默认的初始化,就可以通过自定义构造器来实现。

构造器可以提供许多特殊的方法,构造器作为一种方法,负责类中成员变量(域)的初始化。

🥦

 

重写:需要有继承关系,子类重写父类的方法

重写也称覆盖
1.方法名必须相同
2.参数列表必须相同
3.修饰符:范围可以扩大但不能缩小 public>protected>default>private
4.抛出的异常:范围可以被缩小,但不能扩大:ClassNotFoundException-->Exception()
重写 子类的方法和父类必须要一致,方法体不同
为什么需要重写:
父类的功能,子类不一定需要,或者不一定满足

重写与重载:https://www.runoob.com/java/java-override-overload.html

posted @ 2022-10-18 21:32  带带大萝卜  阅读(70)  评论(0)    收藏  举报