Java继承
2021-06-05 03:01
标签:完成 能力 void protect 多重 static xtend 区别 有一个 Java继承 标签:完成 能力 void protect 多重 static xtend 区别 有一个 原文地址:https://www.cnblogs.com/saxonsong/p/14626952.html继承
概念:继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
语法:class 子类 extends 父类 {} 子类又被称为派生类; 父类又被称为超类(Super Class)。
通过代码可以发现,子类(Student)并没有定义任何的操作,而在主类中所使用的全部操作都是由Person类定义的,这证明:子类即使不扩充父类,也能维持父类的操作。
//父类
public class Person {
String name;
public void print(){
System.out.println("打印这句话!");
}
}
//子类
public class Student extends Person{
}
public class Application {
//一个项目只有一个main方法
public static void main(String[] args) {
Student student = new Student();
student.print();
}
}
//打印这句话!
在Java中,所有的类都直接或者间接继承Object
子类实际上是将父类定义的更加的具体化的一种手段。父类表示的范围大,而子类表示的范围小。
限制:
在任何的情况下,子类都逃不出父类构造的调用,很明显,super调用父类构造,这个语法和this()很相似:super调用父类构造时,一定要放在构造方法的首行上。
public class Person {
protected String name = "父类名字";
}
public class Student extends Person{
private String name = "子类名字";
public void print(String name){
System.out.println(name);
System.out.println(this.name);
System.out.println(super.name);
}
}
public class Application {
//一个项目只有一个main方法
public static void main(String[] args) {
Student student = new Student();
student.print("张三");
}
}
//张三
子类名字
父类名字
public class Person {
protected String name = "父类名字";
public void print(){
System.out.println("父类方法");
}
}
public class Student extends Person{
private String name = "子类名字";
public void print(){
System.out.println("子类方法");
}
public void test(){
print(); //调用自己类的方法
this.print(); //调用自己类的方法
super.print(); //调用父类的方法
}
}
public class Application {
//一个项目只有一个main方法
public static void main(String[] args) {
Student student = new Student();
student.test();
}
}
//子类方法
子类方法
父类方法
public class Person {
protected String name = "父类名字";
public Person() {
System.out.println("父类无参构造器");
}
}
public class Student extends Person{
private String name = "子类名字";
public Student() {
System.out.println("子类无参构造器");
}
}
public class Application {
//一个项目只有一个main方法
public static void main(String[] args) {
Student student = new Student(); //默认调用父类构造方法
}
}
//父类无参构造器
子类无参构造器
Super注意点:
super 调用父类的构造方法,必须在构造方法的第一行;
super 必须只能出现在子类的方法或者构造方法中;
super 和 this 不能同时调用构造方法;
Super VS This 的区别
代表的对象不同
提前不同:
构造方法:
上一篇:C# 串口编程,扫码枪使用
下一篇:c++中的const关键字