当前位置: 首页 > 编程笔记 >

Java继承extends与super关键字详解

越嘉石
2023-03-14
本文向大家介绍Java继承extends与super关键字详解,包括了Java继承extends与super关键字详解的使用技巧和注意事项,需要的朋友参考一下

函数也称为方法!

继承:在java中使用extends关键字来表示继承关系。super用来继承父类方法和参数。

继承就是子类继承父类的特征和行为,使得子类具有父类相同的行为。

注意事项:

1、当一个类没有继承任何一个类时,系统默认继承Object。

2、父类又被称为基类、超类、super类,子类又被称为派生类,这是由于翻译问题而导致的。

3、Java的继承是单一性的。

4、子类不能继承父类的构造方法,但是可以继承构造方法类的参数。

5、子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。但子类不能继承父类private修饰的属性和方法。

语法格式:

系统默认继承

class 类名 extends Object{/*代码块*/}

正确继承语法

class 子类名 extends 父类名{/*代码块*/}

错误继承语法

class 子类名 extends 父类名,父类名{/*不支持多继承*/}

创建类名为Father的父类:

public class Father {
	int a;
	int b;
	int addSum;
	Father(int a,int b){ //父类的构造函数
		this.a=a;
		this.b=b;
	}
	void Cal(){ //父类自己的方法
		addSum=a+b;
		System.out.println(addSum);
	}
	public static void main(String[] args){
		Father f=new Father(2,2); //创建对象初始化
		f.Cal(); //父类调用父类的方法
	}
}

父类运行结果:4

创建子类名为Son的子类:

public class Son extends Father{
	Son(int a, int b) { //子类的构造方法
		super(a, b); //继承来自父类的参数
	}
	void son(){ //子类自己的方法
		super.Cal(); //子类调用父类的方法
	}
	public static void main(String[] args){
		Son s=new Son(3,3); //创建对象初始化
		s.son(); //子类调用子类的方法
	}
}

子类运行结果:6

 类似资料:
  • 问题内容: 问题的简短摘要:我有一个父类,并由子类扩展。 该子类使用super调用Parent的构造函数: 我想知道是否可以在Grandchild类的构造函数中调用super()方法来扩展Child类: 问题答案: super()在继承上一级调用构造函数,如果存在无参数的构造函数,则将隐式调用该构造函数。 对象是从继承的最高层初始化的,在您的情况下是对象>父>子>孙。 从文档中:

  • 主要内容:super调用父类构造方法,super访问父类成员,super和this的区别由于子类不能继承父类的构造方法,因此,如果要调用父类的构造方法,可以使用 super 关键字。super 可以用来访问父类的构造方法、普通方法和属性。 super 关键字的功能: 在子类的构造方法中显式的调用父类构造方法 访问父类的成员方法和变量。 super调用父类构造方法 super 关键字可以在子类的构造方法中显式地调用父类的构造方法,基本格式如下: 其中,parameter-list 指定

  • 本文向大家介绍java 关键字super详解及用法,包括了java 关键字super详解及用法的使用技巧和注意事项,需要的朋友参考一下 java 关键字super详解 一、super关键字     在JAVA类中使用super来引用父类的成分,用this来引用当前对象,如果一个类从另外一个类继承,我们new这个子类的实例对象的时候,这个子类对象里面会有一个父类对象。怎么去引用里面的父类对象呢?使用

  • 我对java中的super关键字有一个问题。请遵循以下示例: 我的观点是,当我在子类中使用Super()时,java如何知道在我的子类中调用哪个构造函数?因为在我的超类中,我有两个没有参数的构造函数;公共双getRadius()和公共双getArea()

  • 我一直在尝试练习一些java MCQ,但没能得到这一个,谁能解释一下输出是怎样的- 而不是

  • 问题内容: 假设Java具有以下层次结构类: 这是C#中相同代码的(盲)重复: 当我执行Java代码时,我得到了C#返回的信息。 对我来说,C#的结果更有意义,因为引用B调用了它自己的方法。 Java设计者决定打印而不是打印的逻辑是什么?我的意思是,为什么引用B在C中使用覆盖方法?这种方法的优势是什么? 如何更改Java代码以像C#一样打印出来?我的意思是,我怎么教Java调用它使用的完全引用的方