Java学习笔记 继承与抽象类:类的继承

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的系别
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值