标签:string struct 语法规则 分享图片 src 技术 auto 数列 tin
继承:
是对父类的继承,和父类有相同的属性,并且可以有自己属性,比如动物是父类,那么小狗,小猫都是它的子类他们都是动物。
看一段代码:
Person.java 作为父类
public class Person {
String name;
int age;
public String getinfo(){
return "name-" + name +",age-" + age;
}
public Person() {
super();
System.out.println("Person");
}
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
System.out.println("person有参数的");
}
}
Student.java 学生类继承Person以及它的方法
public class Student extends Person{
String school;
//在子类中可以根据需要对从父类中继承来的方法进行改造—覆盖方法(方法的重置、重写),在程序执行时,子类的方法将覆盖父类的方法。
//覆盖方法必须和被覆盖方法具有相同的方法名称、参数列表和返回值类型。
//覆盖方法不能使用比被覆盖方法更严格的访问权限。
public String getinfo(){
return super.getinfo() + ",school:" + school;
}
//使用super(),显示调用父类带参数的
public Student() {
//super() 这是调用无参的父类构造方法
//可以定义带参数的
super("MrChengs",12);
// TODO Auto-generated constructor stub
System.out.println("student");
}
//构造方法不能继承
//子类继承父类的所有成员变量和成员方法,但不继承父类的构造方法
//在一个java类中可以通过两种方式获得构造方法
//---使用系统默认的无参构造方法
//---显示定义一个或多个构造方法
//显示定义了构造方法,则系统不在提供默认的构造方法
}
Test.java 进行测试的类
public class Test {
/*
* 在Java类中使用super来引用父类的成分
* super可用于访问父类中定义的属性 super可用于调用父类中定义的成员方法
* super可用于在子类构造方法中调用父类的构造方法
* super的追溯不仅限于直接父类
*
* 在子类的构造其中调用父类的构造器
* public Person() { super();
* System.out.println("Person"); }
*
* public Student() {
* super();
* System.out.println("student"); }
* 此时会在创建对象的时候调用两个构造函数的内容
*
* 父类要是没有无参的应该调用有有参数的
* public Student() {
* super(name,age);
* System.out.println("student"); }
*
*
* 与this类似,必须放在构造器的第一行
*
*/
public static void main(String[] args) {
/*
* 使用extends继承父类的方法和属性
*
* Student类继承了父类Person的所有属性和方法, 并增加了一个属性school。Person中的属性和方法,
* Student都可以利用
*
* 类继承语法规则:
*
* < 修饰符> class < 子类名称> [extends < 父类>] { <属性和方法的声明> }
*
* Java只支持单继承,不允许多重继承 一个子类只能有一个父类 一个父类可以派生出多个子类
*
* 子类不能继承父类中私有的(private)的成员变量和方法
*/
Student s = new Student();
// s.name = "cheng";
// s.age = 23;
System.out.println(s.getinfo());
}
}
标签:string struct 语法规则 分享图片 src 技术 auto 数列 tin
原文地址:https://www.cnblogs.com/Mrchengs/p/9642936.html