类的继承与多态性

 

类的继承与多态性

 

1.   面向对象的三大特征:继承,多态,封装

 

    继承:可以复用一些定义好的类,减少代码冗余

 

    语法:public class extends object{};

 

    多态:可以动态调整对象的调用,降低对象间的依存关系 

 

    封装:把对象的属性隐藏在对象的内部,不容许外部直接访问与修改

 

2.  方法的重写与super关键字

 

    子类可重写或覆盖父类的某个方法,且方法声明应与父类的方法声明一样

 

     Super可用在重写,构造中调用父类方法。

 

3.     封装:设置器与访问器

 

     成员变量语方法:用private修饰,实现分装

 

     设置器:以set为前缀,以属性名为后缀,一般使用public修饰

 

     访问器:以getis为前缀,以属性名为后缀

 

4.     多态:指同一操作在不同的对象中有不同的寓意解释。

 

     可分:数组多态与参数多态

 

5.     接口与抽象

 

     A.     使用abstract定义的类为抽象类,定义的方法为抽象方法,抽象方法没有方法体,只要一类中方法定义为抽象方法,此类必须为抽象类

 

     B.     抽象类被继承后必须重写该类的所有方法,并定义方法体

       语法格式:

 

    Public abstract class(){

 

        Abstract void test();

 

      }

 

C.     接口是抽象的延伸,接口中的所有方法没有方法体。

 

    语法格式:public interface draw(){ void set(); }

 

    在接口中定义的任何成员变量默认都是staticfinal的,定义的方法必须是publicabstract

 

一个类实现一个接口用implements关键字 如:public class C1 extends C  implements C2{ }

 

     A.  一个类可实现多个接口,而不同多重继承。

 

例子:实现单例模式

 

一、饿汉式
public class Singleton{
         private int i;
         private static final Singleton Instance =new Singleton();
         private Singleton(){
                     }
         public void inc(){
                i++;
             } 
         public int getI(){
              return i;
          private static Singleton getInstance(){
                           return Instance;
                   
                     }
    }  
二、懒汉式
public class Singleton{
         private int i;
         private static final Singleton;
         private Singleton(){
                     }
         public void inc(){
                i++;
             } 
         public int getI(){
              return i;
                }
         private static synchonized Singleton getInstance(){
                       if(instance==null) Instance =new Singleton();  
                               return Instance;
                   
                     }
    }  
               
 public class Test{
      
     public static void main(String[] args ){
                  Singleton st=Singleton.getInstance();
                  Singleton st2=Singleton.getInstance();
                  st.inc();
                  st2.inc();
                   
                  System.out.println(Singleton.getInstance().getI());
             } 

     }

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
向上转型是指将一个子对象赋值给父型的变量,通过向上转型可以实现继承多态性多态性是指同一型的对象在不同情况下表现出不同的行为。在向上转型中,父对象可以引用子对象,但只能调用父中定义的方法和属性。这样做的好处是可以提高代码的灵活性和可复用性。通过向上转型,可以实现对父对象的统一管理,只需要一个父型的引用变量就可以操作不同子的对象,这样可以避免编写大量重复的代码。同时,向上转型还可以实现动态绑定,即在运行时根据对象的实际型来确定调用哪个方法。这样可以实现不同子的不同行为,提高了程序的扩展性和可维护性。因此,继承多态性通过向上转型可以实现动态绑定和统一管理不同子对象的优势。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [从向上转型走进java多态性](https://blog.csdn.net/daocaowuwu/article/details/121713221)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Day10 Java多态性继承关系中'向上转型'和'向下转型(还原)'的演示例子与作用及规则的详解.](https://blog.csdn.net/chinatopno1/article/details/103376577)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值