1.今日学习目标:学会使用类的继承
2.初步学习任务:写出一个简单的代码体现类的继承
3.对类的继承的认识:继承即从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
4.继承的实现:
[类修饰符] class 子类名 extends 父类名{
成员变量定义;
成员方法定义;
}
在子类的定义中用关键字extends来明确指出它所继承的父类。例如:
class Student extends person{ }
其中person类也叫做父类,也称为超类或基类;Student类叫作子类,也叫派生类。
构造方法的继承遵循以下原则:
1.子类无条件地继承父类的无参数的构造方法。
2.如果子类没有定义构造方法,则它将继承父类无参数的构造方法作为自己的构造方法;如果子类定义了构造方法,则在创建子类对象时,将先执行来自继承父类的无参数的构造方法,然后再执行自己的构造方法。
3.对于父类带参数的构造方法,子类可以通过在自己的构造方法中使用super关键字来调用它,但这个调用语句必须是子类构造方法中的第一条可执行语句。
分析代码:
class A{
A(){
System.out.pritnln("A()");
}
}
class B extends A{
B(){
System.out.println("B()");
}
public static void main(String args[]){
new B();
}
}
分析得知,父类的对象是优于子类对象而存在的(在现实生活中也是如此)。也就是说,父类对象的构造在子类对象之前,即调用父类构造方法创建父类对象,在调用子类构造方法创建子类对象。
当然不管是构造父类对象还是子类对象,都是遵循以下步骤:
1.静态语句的执行
2.成员变量的初始化
3.语句块的初始化
4.构造方法的执行
任务描述:
通过运用Java中继承的知识,实现子类对父类的继承。
class Person{
String name;
int age;
public Person(String name,int age){
this.name=name;this.age=age;}
public Person(){
this.name4="person name";this.age=23;}
void pprint(){
System.out.println("class:Person;"+"Name:"+this.name+";age:"+this.age);}
}
class Student extends Person{
String name;
int classno;
public Student(){
this.name="student name";this.age=20;}
public Student(String name,int age,int classno){
this.name=name;
this.age=age;
this.classno=classno;
}
void sprint(){
System.out.println("class:Student;"+"Name:"+this.name+";age:"+this.age+";classno:"+this.classno);
}
}
public class VarInherit{
public static void main(String[] args){
Student obj1=new Student();
Student obj2=new Student();
obj1.pprint();obj2.pprint();
obj1.sprint();obj2.sprint();
}
}
代码运行结果:
class:Person; Name:person name; age:20
class:Person: Name:person name; age:18
class:Student; Name:Xiao; age:20; classno:0
class:Student; Name:Xiao; age:18; classn0:1
运行正确!!!
这次的学习分享就到这,谢谢大家!!!