1.子类可以继承父类
1.1掌握继承的基本概念
- 先建立一个Person类,含有姓名,年纪属性
package com.kuang.extend;
class Person{
private String name;
private int age;
public Person(String name,int age){
this.setAge(age);
this.setName(name);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class ExtendDemo01 {
public static void main(String[] args) {
Person per = new Person("张三",15);
System.out.println("姓名:"+per.getName()+"\n"+"年纪:"+per.getAge());
}
}
- 再建一个Student类,含有学校属性,姓名、年龄属性。
package com.kuang.extend;
class Student{
private String name;
private int age;
private String school;
public Student(String name,int age){
this.setAge(age);
this.setName(name);
}
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class ExtendDemo02 {
public static void main(String[] args) {
Student per = new Student("李三", 14);
System.out.println("姓名:" + per.getName() + "\n" + "年纪:" + per.getAge());
}
}
这两个类弄完了,单设这样设计不合理,学生也是人。而且学生类中有许多代码和Person类重复了。
1.2类的继承格式
class 父类
class 子类 extend 父类
package com.kuang.extend;
class Person{
private String name;
private int age;
// public Person(String name,int age){
// this.setAge(age);
// this.setName(name);
// }
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
class Student extends Person{
private String school;
// public Student(String school){
// this.setSchool(school);
// }
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
}
public class ExtendDemo02 {
public static void main(String[] args) {
Student stu=new Student();
stu.setName("张三");
stu.setAge(13);
stu.setSchool("昆工");
System.out.println("姓名:" + stu.getName() + "\n" + "年纪:" + stu.getAge()+ "\n" + "学校:" + stu.getSchool());
//Person per = new Person("李三", 14);
//System.out.println("姓名:" + per.getName() + "\n" + "年纪:" + per.getAge());
}
}
1.3继承限制
- 一个类只能继承一个父类,继承单继承,不能多继承。
- 虽然不能多继承,但是可以多层继承。b继承a,c继承于b。
1.4访问限制
在使用继承的时候要注意:子类是不能直接访问父类中的私有成员变量,但是子类是可以调用父类中的非私有方法,但是不能直接调用父类中的私有成员变量。
class Person{
private String name;
private int age;
// public Person(String name,int age){
// this.setAge(age);
// this.setName(name);
// }
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
class Student extends Person{
public void fun(){
System.out.println(this.getAge());
System.out.println(this.getName());
}