Java面向对象 08 继承
-
概念:1. 当一个类拥有另一个类的数据和操作时,就称这两个类之间具有继承关系。
2. 一个父类可以同时拥有多个子类,父类是所有子类的公共成员变量和公共方法的集合,
而子类是父类的特殊化,可对公共成员变量和方法在功能内涵方面加以扩展和延伸。
关于继承和继承的概念:1. 单继承是指任何类都只有一个父类
2. 多继承是指一个类可以有一个以上父类 (单继承,没有多继承!)
java中继承是通过exterds关键字来实现的
class 子类名 extends父类名
1. 如果子类和父类在同一个包中,它可以从父类那里继承所有private的成员变量和方法作为自己的成员。
2. 如果子类和父类不再同一个包中,它可以从父类那里继承protected,public的成员变量和方法
作为的自己成员。
继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。
-
extant的意思是"扩展"。子类是父类的扩展。
-
继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖,组合,聚合等。
-
继承关系的两个类,一个为子类(派生类)一个为父类(基类)。
-
子类和父类之间,从意义上讲应该具有“is a”的关系。
-
object类
-
super
-
package src1;
//学生 is 人 :派生类或者子类
//子类继承了父类,拥有父类的全部方法
public class Student2 extends Person
{
private String name="riping";
public void print()
{
System.out.println("student");
}
public void test1()
{
print();
this.print();
super.print();
}
public void test2(String name)
{
}
public void test(String name)
{
System.out.println(name);//jw
System.out.println(this.name);//riping
System.out.println(super.name);//jingwen
}
}
Student2 student2=new Student2();
student2.say();
System.out.println(student2.getMoney());
}
}
-------------------------------------
class Student
{
int stu_id;
void set_id(int id)
{
stu_id=id; //定义方法:设置学号
}
void show_id() //定义方法:显示学号
{
System.out.println("the student ID is:"+stu_id);
}
}
class UniversityStudent extends Student
{ //定义子类
int dep_number; //定义子类特有的属性变量
void set_dep(int dep_num) //定义子类特有的方法
{
dep_number=dep_num;
}
void show_dep( )
{
System.out.println("the dep_number is:"+ dep_number);
}
public static void main(String args[])
{
UniversityStudent Lee=new UniversityStudent();
Lee.set_id(2007070130); //继承父类学生的属性和方法
Lee.set_dep(701); //使用本类的属性和方法
Lee.show_id(); //继承父类学生的方法
Lee.show_dep(); //使用本类的方法
}
}
----------------------------
class Vehicle
{
double speed;
String kind;
String color;
void setspeed(double speed)
{
this.speed=speed;
}
void setkind(String kind)
{
this.kind=kind;
}
void setcolor(String color)
{
this.color=color;
}
double getspeed()
{
return speed;
}
String getnkind()
{
return kind;
}
String getcolor()
{
return color;
}
}
class Car extends Vehicle
{
int passenger;
void setpassenger(int passenger)
{
this.passenger=passenger;
}
int getpassenger()
{
return passenger;
}
}
public class CarTest
{
public static void main (String[] args)
{
Car audi=new Car();
audi.setspeed(140);
audi.setkind("Q7");
audi.setcolor("Red");
audi.setpassenger(5);
System.out.println("audi:");
System.out.println ("kind:"+audi.getnkind());
System.out.println ("speed:"+audi.getspeed());
System.out.println ("color:"+audi.getcolor()());
System.out.println ("passenger:"+audi.getpassenger());