package c;
/*集成是采用已有类创建心类,实现代码复制的技术,由已知的类老创建新类
* 新类成为已有类的子类或者派生类,而已有类称为父类超类或者基类,子类具有父类的特征,并对其进行修改或者扩充,用
* extends表明继承关系
* class Rose extends Flower{
* }
* Java中规定所有类都有父类,如果声明类时没有使用extends关键字指明继承关系,则系统默认该类父类为object类
*/
/*继承的原则:原则上,子类可以继承父类的构造方法外,子类可以继承父类的全部成员,但由于父类成员方法和成员变量访问权限
* 的限制,造成父类的部分成员无法再子类中继承 如下:
* (1)子类可以继承父类中声明为public和protected的成员
* (2)如果父类和子类在同一个包中,则子类可以继承父类中默认修饰符修饰的成员
* (3)子类不可以继承父类中声明private的成员
* (4)子类不仅继承父类中直接声明的成员,父类继承于上一级的父类成员也可以被子类继承
* 注意:父类中不能被继承的成员变量或者方法,子类可以通过父类中的公有成员方法或内部类间接调用
*/
class Sample3_11{
public int t1=1;
protected int t2=2;
int t3=3;
private int t4=4;
public void pOne()
{
System.out.println("father public method");
}
public void pTwo()
{
System.out.println("t4="+t4);
pThree();
}
private void pThree()
{
System.out.println("father private nrthod");
}
}
public class jicheng extends Sample3_11{
public static void main(String args[]){
jicheng s=new jicheng();
System.out.println(s.t1);//父类public的成员
System.out.println(s.t2);//父类protected的成员
System.out.println(s.t3);//由默认的default修饰,子类父类在同一包中,则子类可以继承父类
//System.out.println(s.t4) private不可继承
s.pOne();
//s.pthree();
s.pTwo();//通过父类的公有成员方法间接调用父类私有的成员变量或者方法
}
/*集成是采用已有类创建心类,实现代码复制的技术,由已知的类老创建新类
* 新类成为已有类的子类或者派生类,而已有类称为父类超类或者基类,子类具有父类的特征,并对其进行修改或者扩充,用
* extends表明继承关系
* class Rose extends Flower{
* }
* Java中规定所有类都有父类,如果声明类时没有使用extends关键字指明继承关系,则系统默认该类父类为object类
*/
/*继承的原则:原则上,子类可以继承父类的构造方法外,子类可以继承父类的全部成员,但由于父类成员方法和成员变量访问权限
* 的限制,造成父类的部分成员无法再子类中继承 如下:
* (1)子类可以继承父类中声明为public和protected的成员
* (2)如果父类和子类在同一个包中,则子类可以继承父类中默认修饰符修饰的成员
* (3)子类不可以继承父类中声明private的成员
* (4)子类不仅继承父类中直接声明的成员,父类继承于上一级的父类成员也可以被子类继承
* 注意:父类中不能被继承的成员变量或者方法,子类可以通过父类中的公有成员方法或内部类间接调用
*/
class Sample3_11{
public int t1=1;
protected int t2=2;
int t3=3;
private int t4=4;
public void pOne()
{
System.out.println("father public method");
}
public void pTwo()
{
System.out.println("t4="+t4);
pThree();
}
private void pThree()
{
System.out.println("father private nrthod");
}
}
public class jicheng extends Sample3_11{
public static void main(String args[]){
jicheng s=new jicheng();
System.out.println(s.t1);//父类public的成员
System.out.println(s.t2);//父类protected的成员
System.out.println(s.t3);//由默认的default修饰,子类父类在同一包中,则子类可以继承父类
//System.out.println(s.t4) private不可继承
s.pOne();
//s.pthree();
s.pTwo();//通过父类的公有成员方法间接调用父类私有的成员变量或者方法
}
}
package c;
//多次继承
class Grandpa{
public int p1=10;
}
class Father extends Grandpa{
public int p2=20;
}
public class jiCheng1 extends Father {
int p3=1;
public static void main(String args[]){
jiCheng1 son=new jiCheng1();
System.out.println(son.p1);
System.out.println(son.p2);
System.out.println(son.p3);
}
}