Java —— 继承的一些基本问题

一、继承性是Java中一个重要的特性,起到了承上启下的作用,既是多态的基础又能对之前学过的基础有一个清晰的轮廓,下来就简单说下继承。

Tip: 利用继承性可以实现类结构的重用,通俗的来说就是通过继承,我们可以扩充一个类已有的功能,需要通过这样的语法格式来完成:class 子类 extends 父类{…};子类是可以拥有父类的内容的,而在大多数正常情况下,子类都要比父类复杂一些(因为儿子比爸爸优秀嘛哈哈)。
注意:Java中只允许多层继承,而不允许多重继承,意思就是extends后面跟了不止一个父类这样子。

二、简单的说完了继承,又得说到方法的重载与覆写,而覆写又与继承紧密相关。就是当父类某些方法无法满足子类设计需求的时候,可以针对已有的方法进行扩充,那么这个时候在子类中定义与父类方法名称相同的方法的时候(严格的来说还要加上返回值类型,参数的类型和个数),就称为方法覆写。

自己总结的小技巧:创建的对象是谁,就优先用谁的方法。

Tip: 如果在子类中需要调用父类已经覆写过的方法,就用"super.方法()" 的形式进行调用。说到super还要再多说一句,还有"super()"这种形式,它表示在子类中明确调用父类的无参构造,如果不巧父类中没有提供无参构造方法时,还可以通过"super(参数,…)"的形式去调用父类指定参数的构造方法。

注意:以上两种形式,不论哪一种都必须放在子类构造方法的首行。

以上就是理论内容,说的再多不如代码来的实在,搬上跟继承和方法覆写相关的实例代码,如下:

//继承
class Personfu{
   private String name;
   private int age;

   public Personfu(String name, int  age){
      this.name = name;
      this.age = age;
   }
   
   public void setAge(int age) {
       this.age = age;
   }
   
   public int getAge() {
       return age;
   }
   
   public void setName(String name) {
       this.name = name;
   }

   public String getName() {
       return name;
   }

   public void play(){
      System.out.println("我是父");
   }
}

class Personzi extends Personfu{
   private String school;
   
   public void setSchool(String school) {
       this.school = school;
   }
   
   public String getSchool() {
       return school;
   }

   public Personzi(String name, int age, String school){
      //构造传入汽车信息,方便之后的普通方法使用(输出)
      //子类构造中有父类属性,那么必须明确调用父类构造,用super关键字
      super(name,age);
      this.school = school;
   }

   public void play(){
      System.out.println("我是子");
   }
} 

public class demo10{
   public static void main(String[] args) {
      Personzi child = new Personzi("xiaoming",12,"tuanjie");
      //错误写法如下():
      //System.out.println("名字:" + this.name + "年龄:" + this.age + "学校" + this.school);
      
      //正确写法:
      System.out.println("名字:" + child.getName() + "、年龄:" + child.getAge() + "、学校" + child.getSchool());
      System.out.println("在方法名相同时,谁new的就用谁的:");
      child.play();
   }
}

自己的一些心得会在代码后面注释。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值