类的继承:
1.继承
关键字:extends
例如:class A extends B{
}
A:子类 B(超类,基类,SuperClass):父类
2.通过继承,子类可以继承父类中所有的属性和方法(构造器除外)
3.继承的注意:
①不能为了简化代码,获取某关系而继承,若要继承,二个类之间必须满足一定的所属关系: is a
②java只支持单继承,不支持多继承。(一个父类可以有多个子类,但是一个子类只能有一个父类)
③java支持多层继承
- /*一.面向对象的特性之一:继承性
- 问题:当创建Students和Employee类时,产生了大量共性内容
- 解决:将多个类中的共性内容进行提取,提取到相应的jiava类中,与之建立关系
- 1.继承
- 关键字:extends
- 例如:class A extends B{
- }
- A:子类 B(超类,基类,SuperClass):父类
- 2.通过继承,子类可以继承父类中所有的属性和方法(构造器除外)
- 3.继承的注意:
- ①不能为了简化代码,获取某关系而继承,若要继承,二个类之间必须满足一定的所属关系: is a
- ②java只支持单继承,不支持多继承。(一个父类可以有多个子类,但是一个子类只能有一个父类)
- ③java支持多层继承
- */
- public class ExtendsTest1 {
- public static void main(String[] args) {
- Students stu=new Students();
- stu.name="学生张三";
- stu.age=18;
- stu.no=2020740;
- System.out.println("姓名:"+stu.name+" 年龄:"+stu.age+" 学号:"+stu.no);
- stu.eat();
- stu.sleep();
- stu.study();
- System.out.println("----------------------------");
- Employee emp=new Employee();
- emp.name="员工李四";
- emp.age=22;
- System.out.println("姓名:"+emp.name+" 年龄:"+emp.age);
- emp.eat();
- emp.sleep();
- emp.work();
- System.out.println("----------------------------");
- Manager mag=new Manager();
- mag.name="经理王五";
- mag.age=35;
- System.out.println("姓名:"+mag.name+" 年龄:"+mag.age);
- mag.eat();
- mag.sleep();
- mag.work();
- }
- }
-
- class Person{
- String name;
- int age;
- public void eat(){
- System.out.println("吃饭");
- }
- public void sleep(){
- System.out.println("睡觉");
- }
- }
- class Students extends Person{
- int no;
- public void study(){
- System.out.println("学习");
- }
- }
- class Employee extends Person{
- public void work(){
- System.out.println("工作");
- }
- }
- class Manager extends Employee{
-
- }
- /*class Students{
- String name;
- int age;
- public void eat(){
- System.out.println("吃饭");
- }
- public void sleep(){
- System.out.println("睡觉");
- }
- }*/
- /*class Employee{
- String name;
- int age;
- public void eat(){
- System.out.println("吃饭");
- }
- public void sleep(){
- System.out.println("睡觉");
- }
- }*/
- package Exer;
- /*
- 编写Computer类,包含CPU,内存,硬盘等属性,gerDetails方法用于返回Computer的详细信息
- 编写PC子类,继承Computer类,添加特有属性和方法
- 编写NotePad子类,继承Computer类,添加特有属性和方法
- 编写Test类,在mian方法中创建PC和NotePad对象,分别访问对象中特有的属性和方法,以及从Computer类继承的属性和方法并打印输出
- */
- public class ExtendsExer1 {
- public static void main(String[] args) {
- PC pc=new PC();
- pc.cpu="3.0GHz";
- pc.ram="16G";
- pc.hdd="1T";
- pc.box=true;
- System.out.println(pc.getDetails());
- pc.hasBox();
- NotePad np=new NotePad();
- np.cpu="5.0GHz";
- np.ram="32G";
- np.hdd="2T";
- np.fold=true;
- System.out.println(np.getDetails());
- np.isFold();
- }
- }
- class Computer{
- String cpu;
- String ram;
- String hdd;
- public String getDetails(){
- return "CPU:"+cpu+" RAM:"+ram+" HDD:"+hdd;
- }
- }
- class PC extends Computer{
- boolean box;
- public void hasBox(){
- System.out.println("是否有主机箱:"+box);
- }
- }
- class NotePad extends Computer{
- boolean fold;
- public void isFold(){
- System.out.println("是否可以折叠:"+fold);
- }
- }