Java学习——34、类的继承

面向对象四大特性:封装、继承、多态、抽象。

今天介绍继承。

继承是面向对象的核心特性,能够最大限度地实现代码复用。

1、  由继承派生类

继承允许在已有类的基础上创建新类。

创建的新类叫做子类(或派生类),已有类称为父类(或祖先类)。

子类将自动拥有父类的全部成员。

使用关键字extends表示继承。其语法格式如下:

【修饰符】 class 类【extends 父类】

Java中的类是单继承的,一个类只能继承一个父类。

例:Person类为人类,Student类为学生类,很明显,学生类是可以继承人类的,因为学生首先是一个人。

//Person类

class Person{

private String name;//姓名

public Person(){

name="张熹熹";

}

public String getName(){

returnname;

}

}

//Student类

publicclass Student extends Person{

privateintnumber;//学号

public Student(){

number=123;

}

publicvoid show(){

System.out.println("姓名:"+getName()+"\n学号:"+ number);

}

publicstaticvoid main(String args[]){

Student s=new Student();

s.show();

}

}

其运行结果如下:

姓名:张熹熹

学号:123

从本例可以发现,Student类在声明对象s时,是会同时为对象s的姓名和学生赋值的,而对象s在调用show()方法时,也是可以显示s的姓名的。因为在定义类时用了Student extends Person一行,表示将Person中的所有成员继承至Student类中。

2、  继承原则

(1)      子类继承父类所有的成员变量,包括实例成员和静态成员;

(2)      构造方法和析构方法不被继承;

(3)      子类可以增加成员,可以重定义从父类继承来的成员,但不能删除它们。

3、  子类对父类成员的访问权限

子类对父类继承来的成员并不都有访问权限,现说明如下。

(1)      子类不能访问父类的私有成员

(2)      子类能够访问父类的公有成员和保护成员

(3)      子类对父类的缺省权限成员的访问控制,分为两种情况:当父类在当前包中,可以访问父类的缺省权限成员;当父类不在当前包中,则不能访问父类的缺省权限成员。

4、  简单例题

声明midStudent类,继承Student类。

其完整代码如下:

//人类

class Person{

protected String name;//姓名

public Person(){

name="张熹熹";

}

public Person(Stringname){

this.name=name;

}

}

//学生类,继承自人类

class Student extends Person{

privateintnumber;//学号

public Student(){

number=123;

}

publicvoid show(){

System.out.println("姓名:"+name+"\n学号:"+ number);

}

}

//中学生类,继承自学生类

publicclass midStudent extends Student{

private String grade,school,banji;//年级、学校、班级

private String teacher;//班主任

public midStudent(){

grade="一年级";

school="一中";

banji="一班";

teacher="张老师";

}

public midStudent(String grade, String school, Stringbanji,String teacher){

this.grade=grade;

this.school=school;

this.banji=banji;

this.teacher=teacher;

}

publicvoid display(){

super.show();//用super访问父类中的方法

System.out.println("学校:"+school+"\n年级:"+grade+"\n班级:"+banji+"\n班主任:"+teacher);

}

publicstaticvoid main(String args[]){

midStudent mid=new midStudent();

mid.display();

}

}

其运行结果如下:

姓名:张熹熹

学号:123

学校:一中

年级:一年级

班级:一班

班主任:张老师

(0)

相关推荐

  • 访问权限

    原文链接http://zhhll.icu/2020/05/01/java%E5%9F%BA%E7%A1%80/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/java%E5% ...

  • java学习——28.类和对象

    面向对象程序设计(Object Oriented Programming,OOP)是基于对象概念的软件设计方法. Java是纯面向对象的程序设计语言,具有面向对象的所有的特性. 今天介绍类和对象. 面 ...

  • java学习——49.标签、文本行、按钮类

    java学习——49.标签、文本行、按钮类

  • java学习——48.容器、窗口、面板和框架类

    java学习——48.容器、窗口、面板和框架类

  • java学习——47、AWT组件类

    AWT(Abstract Window Tookit,抽象窗口工具集),主要包括组件(component).容器(container).窗口(Window).面板(Panel).框架(Frame).对 ...

  • java学习——45、自定义异常类

    之前抛出的均为Exception异常,只能在catch(Exception e){}中被捕获并处理,但由catch(Exception e)捕获到的异常对象包含了Java定义的所有的异常对象. 如果要 ...

  • Java学习——38、类的抽象性

    抽象是研究复杂对象的基本方法,从复杂对象中抽象出本质特征,忽略次要细节,使某些信息和实现对于使用者不可见.抽象层次越高,其软件利用程序越高. 1.抽象类 使用关键字abstract声明的类为抽象类. ...

  • Java学习——37、类的多态(二)

    类型的多态主要体现在:子类是一种父类类型. 子类通过继承扩充和发展了它的父类,子类是父类的一种特殊类型. 1.子类对象即是父类对象 子类对象包含了父类的所有成员,包括成员变量和成员方法,所以子类对象也 ...

  • Java学习——36、类的多态(一)

    多态性是指"一种定义,多种实现".例如,画画.同是画画,但每一个人,会画出来不同的画,这就是多态. 多态主要有方法的多态和类型的多态. 今天介绍方法的多态. 方法的多态包括方法的重 ...

  • Java学习_Java核心类

    字符串和编码 字符串在String内部是通过一个char[]数组表示的,因此,可以按下面的写法: String s2 = new String(new char[] {'H', 'e', 'l', ' ...