1.新建一个子类对象时,它首先执行它父类的构造方法然后再执行子类的构造方法。
2.我们new一个子类对象赋给父类(父类的引用指向了子类的对象,也就是说java里说的多态,),父类对象不可以调用子类的方法,但如果子类重写了父类的某个方法,则此时父类调用的是子类方法的内容。
java继承:关于成员变量的继承和覆盖
package ceshi3;
class A
{
int a=10;
void printT(){
System.out.println("class A");
}
void printA()
{
System.out.println(a);//子类b的对象,使用父类方法下引用的是父类a的变量
}
}
class B extends A
{
int a='m';
void printB()
{
super.printT();
printT();//同上,测试对继承的方法的调用
System.out.println((char)a);//引用子类方法下引用变量是子类的变量
System.out.println(super.a);//要在子类方法中使用父类变量就要super.属性名。
}
void printT()
{
System.out.println("class B");
}
}
public class JiCheng {
public static void main(String[] args) {
// TODO Auto-generated method stub
B b=new B();
b.printB();
b.printA();//子类b的对象,使用父类方法下引用的是父类a的变量
A a=new A();
a.printA();//用了父类对象、父类方法,引用了父类a的对象
}
}
//新建子类对象
//继承时,使用子类/父类的方法则引用子类/父类对象