`
薇Vv
  • 浏览: 2842 次
文章分类
社区版块
存档分类
最新评论

类的继承

阅读更多

 

                                                                    类的继承

一、基本知识点

1、Java继承关键字与格式

   Java继承的关键字:extends

   格式:

   pubilc class 类名(子类,派生类,超类) extends 类名(父类,基类)

   Java中的继承都是单继承

   eg:public class A extends B,C(No!!)

   

 

2、子类继承到了父类的哪些属性与方法?能调用哪些方法与属性有哪些?

   子类继承了父类的所有属性和方法。

   能调用的:

              类中     同包中    有继承关系不同包中     不同包

 

public        可以     可以           可以             可以

  

protected     可以     可以           可以             不可以

 

 

private       可以     不可以         不可以           不可以

 

  

默认的        可以      可以          不可以           不可以

 

 

 

3、方法重写

   

   (1)访问修饰符,返回值类型,方法名,参数个数类型顺序都必须要相同。

   (2)具体的实现不同(既{}里面的内容)

   

 

4、自动转型

   用父类名来表示子类

   eg:father f=new sun();

 

 

6、多态性

      多态性是由java的方法重载,继承,方法重写,自动转型等技术点的组合。

二、写代码时遇到的问题。

    1、父类写有构造方法的时候,子类也一定要写构造方法。并且利用super方法调用父类的构造方法。

    eg:public class Automation extends WashingMachine {

//构造方法

public Automation(int size ,String color, float price, String brand) {

//调用父类的构造方法

super(size, color, price, brand);

}

     

    2、自动转型的运用场合

       用父类来表示子类,可以减少代码的重复量。       

       如:

        洗衣服,衣服的总类有很多:外套,袜子,裙子 。。。。如果不用自动转型的话,我们想写这个人在洗外套,则会写成:

                public void wash(Coat coat){

System.out.println(brand+type+"的"+"洗衣机只需要放入"+coat.getName                ()+"!");

       如果每种衣服类型都写一种的话,则需要写很多个这样的重复代码。

       为了减少代码的重复量可以使用自动转型(向上转型)。

         public void wash(Clothes clo){

System.out.println(brand+type+"的"+"洗衣机只需要放入"+clo.getName                ()+"!");

         public class Coat extends Clothes {

 

}

               Coat coat = new Coat();

coat.setName("外套");

                auto.wash(coat);

        这样在调用wash方法的时候,coat自动转型为父类clothes,大大的减少了代码的数量。

       

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics