Java 类的继承与应用

 Java支持类的继承,这意味着可以定义一个类(即子类),它继承另一个类的属性和方法(即超类或父类)。通过继承,可以创建新的类,它们从已有的类中继承了一些属性和方法,并可以添加新的属性和方法。

例如:

 
 
 //父类
 class House{
      
      private int area;
      protected String name;

    //空构造器
    House()
    {

    }
    
    House(int area,String name)
    {
        this.area = area;
        this.name = name;
         
    }

    //显示房间基本信息
      public void Show_ifo()
    {
        System.out.println("这个房间的名字是:"+name+"  大小是:"+area+" 立方米");
    }
  

}

//子类1
class BedRoom extends House{

    private int Bed_Cound;

    BedRoom(int area,String name,int Bed_Cound)
    {
     super(area,name);
     this.Bed_Cound = Bed_Cound;
    }

    public void sleep()
    {
        System.out.println("开启睡眠模式");
    }
    
    //设置床的个数
    public void Set_Bed_Cound(int count)
    {
        Bed_Cound = count;
    }

    //显示床的个数
    public int Get_Bed_Cound()
    {
       return Bed_Cound;
    }


    // 重载show_ifo()方法
    public void Show_ifo()
    {
        super.Show_ifo();//调用父类方法
        System.out.println("这个房间的名字是(子类):"+super.name);  //调用父类属性
    }

}

//子类2
class LivingRoom extends House{

     private int Kitchen_count;


    LivingRoom(int area,String name)
    {
     super(area,name);
    }

    public void cook()
    {
        System.out.println("打开煤气灶");
    }
    
    //设置厨具的个数
    public void Set_Kitchen_count(int count)
    {
       Kitchen_count = count;
    }

    //显示厨具的个数
    public int Get_Kitchen_count()
    {
       return Kitchen_count;
    }

}





public class Main{

    public static void main(String[] args) {
        
    BedRoom br = new BedRoom(21, "主卧", 0);
    LivingRoom lr = new LivingRoom(30,"客厅");

    br.Show_ifo();
    lr.Show_ifo();
    br.Set_Bed_Cound(3);
    System.out.println("床的个数为"+br.Get_Bed_Cound());
    lr.cook();
        
    }
}

但需要特别注意的是:

1、若父类中无空构造器,而在父类中又自定义构造器覆盖了默认构造器(每调用一个类时,若没有自定义构造器,会默认构建一个空的构造器),那么在子类中若无构造函数,则会报错。

2d16188dc0ee44149b3ab179cf08f400.png

 

解决方法1:在父类中添加空构造器

77e420539ff749cdb264ef9e90f724e8.png

 解决方法2:在子类中利用super关键字显式调用父类构造器,super关键字必须在最前面

 

7d497bbf2e6c421b9e78444a1a6b5ddd.png

 

super关键词介绍:(super关键字只能在子类中使用)

1.在子类中调用父类的方法及属性

  例如:

5779d294a479429ead4589c741562ed1.png

 2.调用父类中的构造方法

   前文已提及

总结:

在Java中,继承指的是一种面向对象的编程技术,它允许一个类(子类)获得另一个类(父类)的属性和方法。这样,子类就能够继承父类的所有属性和方法,而无需重新定义或实现它们。

继承的主要优点有以下几点:

  • 继承可以减少代码冗余,提高代码复用率。
  • 继承可以提高程序的扩展性和可维护性。
  • 继承可以清晰地表示类与类之间的关系。

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值