面向对象的特征(2)

4. 当父类中的方法的返回值类型是引用数据类型的时候,子类方法的返回值类型要么和父类方法的返回值类型一致,或者子类方法的返回值类型是父类方法的返回值类型的子类

class A {

public void m(){}

}

class B extends A {

public void m(){}

public void mb(){}

}

class C {

public B mc(){return new B();}

}

class D extends C {

public A mc(){return new A();}

}

C c = new D();

c.mc().mb(); //声明c对象用的是C类,告诉了c对象身上有一个mc方法,并且返回值类型是B类,所以调用mc方法的时候可以用一个B类对象来接住结果,可以再次调用B类独显身上的mb方法;
实现用的是D类,具体执行mc方法的时候调用的是D类中的mc方法,D类中mc方法的返回值类型是A类,所以可以定义一个A类对象来接住方法执行后的结果,A身上有mb方法吗?---产生冲突

多态的产生是为了解耦

static

可以修饰变量、方法、代码块、内部类

类变量

static修饰变量,这个变量称之为成员变量或者类变量。静态变量随着类的加载而加载到方法区中的静态区,并且在静态区中被赋予初始值。由于静态变量是先于对象而存在的,可以通过对象来调用,也可以通过类名来调用,一般是通过类名来调用。由于该类创建的所有对象存储的是静态属性在静态区中的地址值,所以静态属性是被所有对象所共享的。---静态属性尽量少用

面向对象的特征

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/e6e2dbfc33b8535d85e1f32ae103e948.html