0811 DAY09 JAVA总结 Vimcelia

面向对象编程基础
本文深入讲解面向对象编程的核心概念,包括构造、重载与重写、继承、抽象类与接口、多态等关键主题,帮助读者理解并掌握面向对象的设计原则。
回顾:
1.构造:

定义:也就是在初始化的时候给成员属性赋值的一种方法;
语法:

public   类名(参数1,参数2){
             this.成员变量 1= 参数1
             this.成员变量2=参数2
   }
2.重载与重写:

重载: 在同一个类里,方法名相同,参数列表或者是参数的类型不同,与返回值无关
重写:继承关系中, 方法名相同 , 参数的个数 或者参数的类型都相同

3.继承

继承的关键字是extends,调用父类的属性方法和构造使用super关键字,调用本类的属性方法和构造使用this关键字。同时继承需要满足is- a的关系。

一、抽象类

抽象类的意思就是抽取公共的属性或者方法

抽象的关键字是abstract
	语法:
	public abstract 类名{
		抽象类内容
	}
抽象类和普通类的区别

1.抽象类必须使用abstract关键字来修饰;
2.抽象类不能被实例化;

抽象方法和普通方法的区别

1.抽象方法也是使用abstract关键字来修饰;
2.抽象方法没有方法体,因此所有抽象类的子类都必须重写该抽象类的方法;

二、多态

多态 : 按字面的意思就是“多种状态”。
在面向对象语言中,接口的多种不同的实现方式即为多态。

多态使用的条件:

1.多态必须在继承的前提下
2.多态里一般都会方法重写

多态的语法:   
		父类的对象 对象名称   = new  子类的对象();
	 //   父类的对象引用执行之类对象的引用   (向上自动转型)
多态里成员变量的获取:

在多态里, 编译看左边, 赋值看左边

	public class Test {
		public static void main(String[] args) {
    			Fu fu=new Zi();	//该运行结果为Fu类的age 
   			 System.out.println(fu.age);
}
在多态里方法是如何获取:

在多态里,编译看左边 ,运行看右边

多态的向上转型的语法:
	父类 对象名称 = new   子类()  类似于  向上自动类型转换
         ps:Pet pet = new Dog()

缺点: 不能调用子类独有的方法

向下进行转换(还原成原来)语法:  
	子类  子类名称= 子类 (子类向上转型的对象名)
	ps:Dog dog  =(Dog)pet

如果还原不正确会产生一个错误: 强制类型转换异常 java.lang.ClassCastException

instanceof

判断是否能够还原成功 ,instanceof 在强制类转换之前, 判断是否能够还原成功,假如还原成功,则返回true,假如还原不成功,则返回false。

	 if(pet  instanceof  Penguin){
        	  //    再进行向下转型
          Penguin  penguin  =(Penguin) pet;
            penguin.eat();
             penguin.swimming();
          System.out.println("是企鹅");
      }else if(pet  instanceof  Dog){
          System.out.println("是狗");
             Dog  dog   = (Dog) pet;
             dog.eat();
             dog.shut();
      } 
多态的两种体现形式:

第一种是以父类作为参数, 第二种是以父类作为返回值

三、接口

一些规范 , 定义一些方法.

如何来定义一个接口

1.interface:接口的关键字

	接口的语法 :  
		 public     interface    接口的名称{
		 }

2.implements :实现接口的关键字

public class UsbIter implements Iter {

}

注意点:

1.接口里的方法都是抽象方法
2. 接口编译后也是一个class 文件
3. 实现类必须实现接口里所有的方法(重写所有方法)
4. 接口不能够被实例化, 只能实例化实现类(原因:接口实际上是一个抽象类)

开发中最常见的三种赋值方法:

1.通过传递父类参数
2.set方法
3.通过构造方法进行赋值

接口的意义:是为了解决java 中的单继承问题!

因此,在java中能够实现一个实现类实现多个接口(对比一个子类不能继承多个父类),俗话一点,父类是爸爸,接口是干爹。

实现多个接口的语法:
	implements 接口1,接口2     (  implements  Pager,Link  )

在接口里,不能有变量 ,只能有常量,因此会给常量默认加上一个 public static final
接口里的方法: 接口里的方法都是抽象方法, 系统默认会加上 public abstract,不可以有普通方法
接口没有构造方法: 实现类都是干爹, 只存在一个爸爸(Object)

疑问

1.在多态中,方法的编译看左,运行看右是怎么理解的?
2.在接口里面的抽象方法假如是静态的,实现类照样能够实现吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值