父类和子类之间的一种关系。
子类可以继承父类的公共属性和方法。
被继承的类称为基类或者超类或者父类。
继承的类称为子类。
1> 子类可以使用父类私有以外的所有成员变量
2> 子类可以拥有父类私有以外的所有成员方法
3> 方法的覆盖(重写)
1) 存在继承关系
2) 方法名,参数,返回值类型相同
3) 访问修饰符:子类要大于或等于父类的访问修饰符
public class Person{
public void eat(String food){
}
}
public class Men extends Person{
@Override //表示该方法是被重写的方法
public void eat(String food){
}
}
3.多态:
类或方法的多种形态的体现。
1.方法重构/重载
1) 在同一个类中
2) 方法名相同,参数列表不同
2.类的向下转型
父类引用可以实例化子类的对象。
SuperClass sc = new SubClass();
调用子类的方法
调用哪个子类的方法:根据new 后面的类来确定。
父类的引用可以强制转换成它实例化的子类的对象。
Men men = new Men();
Person peron = (Person)men;
可以转换但是调用发方法的时候,会出现异常。
Person person = new Men();
Men men = (Men)person;
2.修饰符:
1. static :静态的,全局的,属性类的
1.静态的变量
语法:
public static String name; //类变量
调用:
类名.静态变量名
2.静态的方法
语法:
public static String methodName(参数类别){
return String;
}
静态方法的调用:
在同一个类中,可以直接写方法名调用。
不在同一个类中,类名.方法名调用
Person.methodName("zhangsan");
//普通方法的调用
Person person = new Person();
person.methodName(); //对象名.方法名()调用
2. abstract:抽象的
1 抽象类
public abstract class ClassName{
//可以有抽象方法
//也可以全部是普通方法
}
2 抽象方法
public abstract String methodName(){
//抽象方法必须定义在抽象类或接口中
}
如果该类中有抽象方法的话,该类必然是抽象类/接口
3.抽象类不能被直接实例化
要通过继承该抽象类的子类进行实例化。
3.final:最终的
1 最终类
用final关键字修饰的类。
该类不能被继承。
语法:
public final class ClassName{
}
2 最终方法
用final关键修饰的方法
该方法不能被重写
语法:
public final void methodName(){
}
3 最终变量(常量)
常量值一旦定义不能被改变
常量命名规范:一般所有的字母全部大写