时间:2021-05-19
1,继承的定义
子类的成员中有一部分是子类自己申明定义的,另一部分是从他的父类继承的。子类继承父类的成员变量作为自己的一个成员变量,就好像他们是在子类中直接
申明一样,可以被子类中自己的任何实例方法操作。也就是说,一个子类继承的成员应当是这个类的完全意义的成员,如果子类中申明的实例方法不能操作父类
的某个成员变量,该成员变量就没有被子类继承,子类继承父类的方法作为子类中的方法,就像他们是在子类中直接声一样,可以被子类中自己声明的刃虎实例
方法调用。
2.子类父类在一个包中的情况
子类可以继承父类中的除了private的成员变量和方法,作为自己的成员变量和方法。继承的成员变量和方法的访问权限是不变的。
/test/src/com/b510/Parent.java
复制代码 代码如下:
package com.b510;
/**
* @author Hongten
*
* @time 2012-3-13 2012
*/
public class Parent {
private int numbera = 10;
protected int numberb = 20;
/**
* 友元函数sum()
*/
void sum() {
numberb = numbera + numberb;
System.out.println(numberb);
}
/**
* 获得numbera,此方法是private
*
* @return numbera
*/
private int getNumbera() {
System.out.println(numbera);
return numbera;
}
/**
* 此方法是public类型的
*/
public void print() {
System.out.println("numberb+numbera=" + (numberb + numbera));
}
/**
* 此方法是protected类型的
*/
protected void say() {
System.out.println("Hello,i'm parent class!");
}
}
/test/src/com/b510/ParentAndSubClass.java
复制代码 代码如下:
package com.b510;
/**
* @author Hongten
*
* @time 2012-3-13 2012
*/
public class ParentAndSubClass {
public static void main(String[] args) {
SubClass sub = new SubClass();
// 继承父类中的方法
sub.say();
sub.sum();
sub.print();
// 子类自己的方法
sub.proFun();
sub.youYuan();
}
}
/test/src/com/b510/SubClass.java
复制代码 代码如下:
package com.b510;
/**
* @author Hongten
*
* @time 2012-3-13 2012
*/
public class SubClass extends Parent {
/**
* 友元方法
*/
void youYuan() {
System.out.println("子类不能继承numbera,但能继承numberb=" + numberb);
System.out.println("这是子类中的友元方法");
}
/**
* private方法
*/
private void priFun() {
System.out.println("这是private方法");
}
/**
* protected方法
*/
protected void proFun() {
System.out.println("子类中可以继承numberb=" + numberb);
}
}
运行结果:
复制代码 代码如下:
Hello,i'm parent class!
30
numberb+numbera=40
子类中可以继承numberb=30
子类不能继承numbera,但能继承numberb=30
这是子类中的友元方法
总结:子类和父类在同一个包中的时候,子类不能继承父类的含有private的变量和方法。
3.子类和父类不在同一个包的情况
/test/src/com/Parent.java
复制代码 代码如下:
package com;
/**
* @author Hongten
*
* @time 2012-3-13 2012
*/
public class Parent {
private int numbera = 10;
protected int numberb = 20;
/**
* 友元函数sum()
*/
void sum() {
numberb = numbera + numberb;
System.out.println(numberb);
}
/**
* 获得numbera,此方法是private
*
* @return numbera
*/
private int getNumbera() {
System.out.println(numbera);
return numbera;
}
/**
* 此方法是public类型的
*/
public void print() {
System.out.println("numberb+numbera=" + (numberb + numbera));
}
/**
* 此方法是protected类型的
*/
protected void say() {
System.out.println("Hello,i'm parent class!");
}
}
/test/src/com/b510/ParentAndSubClass.java
复制代码 代码如下:
package com.b510;
/**
* @author Hongten
*
* @time 2012-3-13 2012
*/
public class ParentAndSubClass {
public static void main(String[] args) {
SubClass sub = new SubClass();
// 继承父类中的方法
sub.say();
sub.print();
// 子类自己的方法
sub.proFun();
sub.youYuan();
}
}
/test/src/com/b510/SubClass.java
复制代码 代码如下:
package com.b510;
import com.Parent;
/**
* @author Hongten
*
* @time 2012-3-13 2012
*/
public class SubClass extends Parent {
/**
* 友元方法
*/
void youYuan() {
System.out.println("子类不能继承numbera,但能继承numberb=" + numberb);
System.out.println("这是子类中的友元方法");
}
/**
* private方法
*/
private void priFun() {
System.out.println("这是private方法");
}
/**
* protected方法
*/
protected void proFun() {
System.out.println("子类中可以继承numberb=" + numberb);
}
@Override
protected void say() {
System.out.println("这是重写父类的protected方法,say(),还可以得到numberb=" + numberb);
}
}
运行结果:
复制代码 代码如下:
1 这是重写父类的protected方法,say(),还可以得到numberb=20
2 numberb+numbera=30
3 子类中可以继承numberb=20
4 子类不能继承numbera,但能继承numberb=20
5 这是子类中的友元方法
总结:子类和父类不在同一个包,子类可以继承protected,public变量和方法,继承的成员或方法的访问权限不变,但子类不能继承父类的友好(友元)变量和友好(友元)方法。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1.继承性CSS的某些样式是具有继承性的,那么什么是继承呢?继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代。比如下面代码:如某种
我们都知道,CSS具有叠加性(同一个元素被多条样式规则指定),继承性(后代元素会继承前辈元素的一些样式和属性)和优先级(由于CSS的叠加性和继承性,将产生优先级
本文实例讲述了Java中的多态用法。分享给大家供大家参考。具体分析如下:多态,是面向对象的程序设计语言最核心的特征。封装性、继承性都比较简单,所以这里只对多态做
本文实例讲述了Java序列化中子类、父类构造函数问题。分享给大家供大家参考,具体如下:一介绍1、如果父类实现了序列化接口,子类就不需要实现序列化接口。2、创建对
函数也称为方法!继承:在java中使用extends关键字来表示继承关系。super用来继承父类方法和参数。继承就是子类继承父类的特征和行为,使得子类具有父类相