方法的覆写:当子类的方法和属性与父类同名是
重载与覆写:重载和覆写,两个方法的返回值必须一样,结构不可改变;
覆写的使用原则:
super.方法():直接调用父类此方法
this.方法():先在子类中查询是否有此方法,如果有,则调用子类方法,如果子类没有,父类有,则调用父类方法,否则报错;
方法的覆写:当子类的方法和属性与父类同名是
重载与覆写:重载和覆写,两个方法的返回值必须一样,结构不可改变;
覆写的使用原则:
super.方法():直接调用父类此方法
this.方法():先在子类中查询是否有此方法,如果有,则调用子类方法,如果子类没有,父类有,则调用父类方法,否则报错;
1:java不允许多重继承,及一个子类不可以同时继承多个父类;
class A{};
class B{};
class C{} extends A,B{}--错误
class B extends A{};
class C extends B{};
2:子类调用构造方法前,一定要先调用父类构造方法,
继承的实现:
继承使用extends实现,
calss 子类 exteneds 父类 {}
》子类可以直接操作父类的方法属性,属于代码的 重用;
》子类可以继续阔从自己的定义
工厂设计模型:
一个接口
n个实现接口的类
一个取得实现接口的对象
代理设计模型
一个接口
一个关键实现接口
一个代理实现接口
class Member{
}
要想初始化参数,那么必须进入到运行时的配置项。但是在配置之前至少先执行一次类。
|- 向上转型(自动完成):父类 父类对象 = 子类实例
|- 向下转型(强制完成):子类 子类对象 = (子类)父类实例;
向上转型的意义在于参数的统一上。统一的参数方便于方法的调用。
向下转型指父类调用子类自己特殊的方法,所有的父类发生了向上转型之后只能看见父类自己定义的全部方法信息,但看不见子类特殊的方法,于是此时就需要使用向下转型,将父类对象转换为子类对象,这样就可以使用子类的特殊功能了。
全局常量:public static final声明的是全局常量
public static final String MSG = “MLDN”;
同一块堆内存空间可以被不同的栈内存所指向,不同堆内存可以对同一堆内存进行内容的修改》引用传递的核心理念!
class Message{
private int num = 10;
public Message (int num){
this.num = num;
}
}
public int getNum(){
retrun this.num;
}
public classTestDemo{
public static void main(String[] args){
Message msg = new Message(30);
fun(msg);
System.out.println(msg.getNum());
}
public static void fun(Message temp){
temp.setNum(100);
}
}
运行结果为:100;
注意:String类对象的对象内容一旦声名,则不可改变!
Object类可以接受一切引用数据类型,(数组和接口)
objec类是所有类的父类
接口 -- 代理设计模式(Proxy)
代理主题类
真实主题类
接口 -- 工厂设计模式(Factory)
工厂类 要和接口有关,也要和所有的子类有关系。
客户端只能看到接口和工厂类
所有的开发里面可以不使用抽象类,但是没有不使用接口。
如果不会接口,别说你会java
接口:一个特殊的的类,这个类里只有抽象方法和全局常量。使用interface关键字。
一个抽象类可以继承一个抽象类。
但是一个接口却可以使用extends继承多个接口。
抽象类完成模板的功能。
如果要使用类继承的话,那么就使用抽象类
外部抽象类不允许使用static声明,而内部的抽象类允许使用static声明。使用static声明的内部抽象类相当于一个外部抽象类,继承的时候使用“外部类.内部类”的形式表示类名称。
在任何情况下,如果要执行类中的static方法的时候,都可以在没有对象的时候直接调用,对于抽象类也是一样
抽象类:
就是在普通类的基础上,增加抽象方法的组成部分。
抽象方法:没有方法体的方法。使用abstrace关键字进行定义。
拥有抽象方法的类一定属于抽象类,抽象类要用abstract声明。
多态性:
一、方法的多态性有两点:
1、方法的重载:同一个方法名称,会根据传入参数的类型及个数不同执行不同的方法体。
2、方法的覆写:同一个方法,会根据子类的不同,实现不同的功能。
二、对象的多态性:指的是发生在继承关系类之中,子类和父类之间的转换。
1、向上转型(自动完成):父类 父类对象=地雷实例:
意义:由于所有的子类对象都可以自动的向上转型,所以在于参数的统一上。
2、向下转型(强制完成):子类 子类对象=(子类)父类实例
意义:指的是父类要调用子类自己特殊的方法,所有的父类发生了向上转型之后,只能够看到自己定义的全部方法信息,但是看不键子类特殊的方法,于是此时就需要使用向下转型,将父类对象转为子类对象
经验:
1、80%的情况下使用向上转型,因为可以得到参数类型的统一
5%的情况下会使用向下转向,目的是调用子类的特殊方法;
15%得瑟情况下是不转向的,例如:String
对于向下转向如果要
1、使用final定义的类不能够再有子类。(太监类)
2、使用final定义的方法,不能被覆写
3、使用final定义的变量就成为了常量,常量必须在定义的时候设置好内容,并且不能被修改。
所有的常量名称都要使用大写字母表示。
4、全局常量
public static final生命的就是全局常量