1.构造
(1)构造方法与类名一致,子类继承父类的构造方法
(2)作用:初始化
(3)方法名一致,修饰符号可以不一致,参数可以不同
(4)子类继承父类,子类必须先执行父类的初始化动作,子类构造默认有一个super()
(5)对象初始化里默认有一个无参构造器
多组合,少继承,继承的缺点:类和类之间多了,可读性差
组合的使用方法:
public class Phone{
private String color;
public Phone(String color)
{
this.color = color;
}
}
public class Student{
private Phone phone; //这就是组合
private String name;
}
2.抽象类:
包含抽象方法的类叫抽象类
public abstract class Abstr
{
public abstract void run();
}
public class Dog
{
public void run()
{
}
}
public class Cat
{
public void run()
{
}
}
cat和dog都要使用run这个方法,不如直接继承抽象类,使用它的抽象方法
抽象类有啥,继承抽象类的类也需要有。
由于Java是面向接口式编程,因此很少使用抽象类。
有抽象方法的类一定是抽象类,抽象类也有构造方法。
3.static关键字
(1)静态代码块: static {}
(2)静态方法
(3)静态字段
static主要作用:创建独立与具体对象的域或者方法
静态变量格式:修饰符 static 数据类型 变量名
静态方法格式:修饰符 static 方法返回值 方法名(参数)
静态代码块格式:static {数据只会被执行一次}
静态变量和实例对象的区别:
实例对象是需要创建对象的,创建几次对象,就要几次创建实例变量
静态是属于类的,只在内存中生成一次,公共属性。
静态方法不属于任何对象,不能使用.this
static关键字应用场景:
被所有对象共享,成员变量就是静态变量。
static访问方法:
public class Statics{
public static double pai = 3.1415926;
}
public static void main()
{
double f = Statics.pai;
}
使用方法:类名.属性名,类名.方法名
静态方法没有this关键字,随类加载,静态比对象优先存在。
4.多态:
多态是面向对象程序设计(OOP)的一个重要特征,指同一个实体同时具有多种形式,即同一个对象,在不同时刻,代表的对象不一样,指的是对象的多种形态。
可以把不同的子类对象都当作父类来看,进而屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,统一调用标准。
比如,你的女盆友让你买点水果回来,不管买回来的是苹果还是西瓜,只要是水果就行,这个就是生活中多态的体现
再比如,小猫、小狗、小猪我们可以把他们都归纳成小动物,每种小动物都需要吃东西,所以我们可以统一设置他们都必须吃,但是每种小动物的习性不一样,那这个就可以设置成小动物自己特有的功能,多态对象只能调用父类中定义子类中重写的功能,并不能调用子类的特有功能,这样就实现了代码的统一
5.重载:方法名相同参数个数不同,就是重载,方法的重载关键在于参数个数的不同
6.接口:
public interface PhoneInterface{
//定义共同行为
public String charge();
public String transfer();
}
//实现接口,必须有接口的所有方法
public class phone implements PhoneInterface{
@override
public String charge()
{}
@override
public String transfer()
{}
}
抽象类和接口的区别:
子类只能继承一个抽象类,接口可以实现多个
一个类实现一个接口,必须实现接口的所有方法,抽象类不用
抽象类可以有静态方法和静态代码块,接口大咩
接口不可以被实例化,抽象类有构造方法
接口优于抽象类,Java面向接口式编程。