1.继承的概念
(1)什么是继承?
两个类之间的一种关系
父类(Super ClassParent Class),子类(Children Class)
Student类具有所有Person类共性的特点同时还具有自己特有的特点
例:学生是在上学的人
(2)继承的特点
基于现有类构建新类
在父类基础上建立子类
继承可以实现代码再利用
(3)Java中的继承
一个类可以有多个子类,任何一个类都只有一个单一的父类
Java语言只支持单重继承
单重继承的优势:安全,可靠性
2.继承的实现
继承的语法
子类利用父类中定义的方法和变量,就像他们属于子类本身一样
继承的特点
子类如何使用继承过来的成员
子类对象.父类成员名
注意:子类不能直接访问父类的private成员
解决:通过set和get方法
class Person{
String name;
int age;//如果这里为private int age就不能访问
public void getInfo()
{
System.out.println("我的年龄"+age);
}
}
public class Student extends Person{
public static void main(String[] args) {
Student s1 = new Student();
s1.age=19;
s1.getInfo();
}
}
3.默认父类问题
默认父类问题
若无extends子句,则该类默认为java.lang.Object的之类
Java中的所有的类都直接或间接地继承自java.lang.Object
**编程:**创建Teacher类,继承Person,增加系别等信息
class Person{
String name;
int age;
public void getInfo()
{
System.out.println("我的年龄"+age);
}
}
class Teacher extends Person{
String department;
void show(){
System.out.println("身份"+department);
}
}
public class ExtendsText {
public static void main(String[] args) {
Teacher t1 = new Teacher();
t1.name = "张三";
t1.age = 29;
t1.department = "计算机";
t1.getInfo();
t1.show();
}
}
编程训练
class PersonA
{ private String name;
public void setName(String newName)
{ name=newName; }
public String getName( )
{ return name; }
}
class StudentA 【代码1】 //继承PersonA类
{
private String department;
public void setDepartment(String newDepartment)
{ department=newDepartment; }
public String getDepartment()
{ return department; }
}
class C1
{ public static void main(String[ ] args)
{ StudentA s1=new StudentA( );
【代码2】 //调用setName( )方法,传入参数"张三"
【代码3】 //调用setDepartment( )方法,传入参数"计算机系"
【代码4】 //显示s1的姓名
【代码5】 //显示s1的系别
}
}
答案
class PersonA {
private String name;
public void setName(String newName) {
name=newName;
}
public String getName( ) {
return name;
}
}
class StudentA extends PersonA //继承PersonA类{
private String department;
public void setDepartment(String newDepartment) {
department=newDepartment;
}
public String getDepartment() {
return department;
}
}
class Train {
public static void main(String[ ] args) {
StudentA s1=new StudentA( );
s1.setName("张三"); //调用setName( )方法,传入参数"张三"
s1.setDepartment("计算机系"); //调用setDepartment( )方法,传入参数"计算机系"
System.out.println(s1.getName()); //显示s1的姓名
System.out.println(s1.getDepartment()); //显示s1的系别
}
}