今天学习Java三大特征之一:继承的时候,产生了一些疑问,最后通过网上查找和各位网友的帮助,终于拔开云雾见日出。下面进入正题:
首先:子类对象拥有父类中的所有属性和方法;在这里,很多人会问构造器可以继承吗?答案不言而喻,构造器是不可以继承。(这里要注意构造器并不是方法,具体原因大家可以回顾一下方法的几个特征。)
主要谈一下,父类的私有成员。
上面提到:子类对象拥有父类中的所有属性和方法,则子类当然也继承了父类的私有属性和方法。但是它不能直接访问,之所以说不能直接访问,而不是不能访问,那是因为一旦父类提供了其私有成员的公共访问方法,那么子类就可以访问其私有成员。
父类的私有方法,不能被重写;
子类在重写父类的非私有方法时,一定要注意:子类中的方法的权限必须大于或者等于父类中的权限;(public > protected>默认访问权限(包权限)>privated)
class Parents
{
Private String wealth;//这里wealth声明为一个私有成员
public String getWealth()//提供了一个访问wealth的公共函数getWealth();
{
return wealth;
}
}
public class Son extends Parents
{
public static void main(String [] args)
{
Son son = new Son();
String ParentsWealth = son.getWealth();//这样就可以访问到父类的私有成员
System.out.println("父类的财富为:"+ParentsWealth);
}
}
接下来,简要说一下继承发生后,其子类对象的组成:
在子类被创建的时候,首先会在内存中创建一个父类对象,然后在父类的外部加上子类独有的属性和方法,两者共同组成了子类的一个对象。简单用公式表达: 子类对象 = 父类对象 + 子类特有的属性和方法
大家都知道,创建对象时要调用构造器
这里可以看出:在创建子类对象时,首先要调用父类的构造器。(编程时最好显示把无参构造函数先写出来)