继承
- 继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。 extends的意思是“扩展”。子类是父类的扩展。
2.JAVA中类只有单继承,没有多继承! 继承是类和类之间的一种关系。除此之外类和类之间的关系还有依赖、组合、聚合等。
3.继承关系的俩个类,一个为子类(派生类)一个为父类(基类)。子类继承父类使用关键字 extends来表
4.子类和父类之间从意义上讲应该具有isa"的关系 object类 super this
创建父类、子类,子类中继承父类的所有方法
1.main函数
public class appliction {
public static void main(String[] args) {
Student student = new Student();//new一个student对象
student.test("世界和平");//调用用text方法
}
}
2.子类
//子类继承父类,就会拥有父类所有方法
public class Student extends Person{
public String name = "世界";//定义一个对象
public void test(String name){
System.out.println(name);//这里的name是主函数传入的变量
System.out.println(this.name);//这里的name是自身定义的name"世界"
System.out.println(super.name);//这里的name是父类中的name,使用super调用
}
}
3.父类
public class Person {
protected String name = "你好";
}
输出结果:
从结果可以看出, 首先输出“世界你好”,因为在子类的方法中第一条输出语句为主函数传入的变量,以此类推输出剩下的结果。
在父类子类中构造函数,并在主函数中调用
1.主函数
public static void main(String[] args) {
Student student = new Student();
student.test1();
}
2.子类
public class Student extends Person{
public void print(){
System.out.println("Student");
}
public void test1(){
this.print();//this表示自身的方法
super.print();//用super调用父类的方法
}
3.父类
public class Person {
public void print(){
System.out.println("Person");
}
}
运行结果:
在父类子类显示无参构造
1.主函数
public static void main(String[] args) {
Student student = new Student();//new一个stuent对象
}
2.子类
public class Student extends Person{
//子类调用无参构造
//正常情况下,为隐藏代码,自动调用子类构造器
public Student() {
//如果父类为有参构造,所以在super中需加入参数否则会出现错误
super();//代用父类构造器,必须在子类构造器第一行
System.out.println("Student无参构造");
}
3.父类
public class Person {
//调用无参构造器
public Person() {
System.out.println("Person无参构造");
}
}
运行结果:
super的注意点
1.super调用父类的构造方法,必须在构造方法的第一个
2.super只能出现在子类的方法或者构造方法中 和this的区别
代表对象不同: this:本身调用者这个对象 super:代表父类对象的应用 前提: this:没有继承也可以用 super:只有在继承条件中才可以使用 构造方法: this :本类的构造 super:父类的构造
初次学习,不足之处之后学习到再进行完善补充