package PloyDemo;
public class SuperClass {
public static int a = 1;
public int b = 2;
// 父类普通方法
public void SuperMehod() {
System.out.println("SuperClass");
}
// 静态方法
public static void SuperMethodS() {
System.out.println("父类静态方法");
}
public SuperClass() {
System.out.println("父类构造");
}
public SuperClass(int x) {
System.out.println("有参构造");
}
public void Super() {
System.out.println("没有重写");
}
}
package PloyDemo;
public class SubClass extends SuperClass {
/*
* 什么是多态:是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。
* 多态的好处:减少代码量,消除类之间的耦合关系
* A extends SuperClass ,B extends Superclass
* Superclass c=null;(new 是运行时才确定,也就只能确定c调用的哪个方法)
* c=new A();--> c.method();
* c=new B();--> c.method();
*/
public int a=4;
public static int b=5;
//静态方法
public static void SuperMethodS(){
System.out.println("子类静态方法");
}
@Override
public void SuperMehod() {
System.out.println("SubClass");
}
public void SuperMehod(int a) {
System.out.println(a);
}
public static void main(String[] args) {
SuperClass c = new SubClass();//(父类构造)先调用父类构造,在调用子类//若父类无无参构造保错
// (编译类型) (运行类型)
c.SuperMehod();//(SubClass) 重写了父类方法,先调用子类
c.SuperMethodS();//1
//如果子类写了与父类一样的静态变量和方法,还是调用父类(静态不存在多态)
System.out.println(SubClass.b);//(6) 子类静态变量只能通过类名去调用
System.out.println(c.a);//1
c.Super();//(没有重写)没重写的父类方法,父类有则调用父类
System.out.println(c.b);//2
}
}
多态,继承
最新推荐文章于 2022-08-17 16:25:16 发布