入口
-
super注意点:
1、super调用父类的构造方法,必须在构造方法的第一个
2、super必须只能出现在子类的方法或者构造方法中
3、super和this不能同时调用构造方法
-
super 和 this 的对比:
1、代表的对象不同:
this:本身调用着这个对象
super:代表父类对象的引用
2、前提:
this:没有继承也可以使用
super:只能在继承条件下才可以使用
3、构造方法:
this(); 本类的构造
super(); 父类的构造
-
实例:
package oop.demo7; /** * super注意点: * 1.super调用父类的构造方法,必须在构造方法的第一个 * 2.super必须只能出现在子类的方法或者构造方法中 * 3.super和this不能同时调用构造方法 * super和this的对比: * 代表的对象不同: * this:本身调用着这个对象 * super:代表父类对象的引用 * 前提: * this:没有继承也可以使用 * super:只能在继承条件下才可以使用 * 构造方法: * this(); 本类的构造 * super(); 父类的构造 */ public class Application { public static void main(String[] args) { Student student = new Student(); student.test("秦疆"); student.test2(); } }
父类
-
初识:
某一个类B继承了类A
则说A是B的父类。
继承后B拥有A所有的公开方法和属性。
-
示例:
-
实例:
package oop.demo7; /** * Person类:父类 * 快捷键:Alt + Insert -> Constructor 生成构造器 */ public class Person { //无参构造器 public Person() { System.out.println("父类的Person无参执行了"); } protected String name = "kuangshen"; public void print(){ System.out.println("Person"); } //private 私有的 私有东西无法被继承 private void print2(){ System.out.println("Person"); } }
子类:extends关键字继承父类
-
初识:
某一个类B继承了类A
则说B是A的子类/派生类。
继承后B拥有A所有的公开方法和属性。
继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。
继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。
子类和父类之间,从意义上讲应该具有"is a"的关系。
java类只有单继承,没有多继承。(一个儿子只能有一个爸爸,但是一个爸爸可以有多个儿子)
快捷键:Ctrl + H 打开继承关系树(结构)
-
示例:
-
实例:
package oop.demo7; /** * 学生 is 人 * 学生继承人 * 派生类/子类 * 子类继承了父类,就会拥有父类的全部方法 */ public class Student extends Person { //无参构造器 public Student() { //super(); 隐藏代码:此处默认调用了父类的无参构造(不写默认调用) super(); //调用父类的构造器,必须要在子类构造器的第一行 System.out.println("子类的Student无参构造器执行了"); } private String name = "qinjiang"; public void print(){ System.out.println("Student"); } public void test(String name){ System.out.println(name); //传入的参数 System.out.println(this.name); //输出当前类的属性 this关键字 System.out.println(super.name); //在子类中访问父类的属性 super关键字 } public void test2(){ print(); //调用当前类的方法 this.print(); //this关键字 调用当前类的方法 super.print(); //super关键字 调用父类的方法 } }