Java学习日记基础篇(六)—— 抽象类、接口、final
2021-06-26 23:04
标签:不用 col ace abs put 而且 java学习日记 继承 public 因为父类方法有不确定性,我们在Animal中定义了一个方法,但是它会被子类的方法覆盖掉,我们就不知道这个方法原本是做什么的 当父类的一些方法不能确定时,可以用 abstract 关键字来修饰该方法或类,称为抽象方法和抽象类。 usb插槽就是现实中的接口—— 我们可以把手机,U盘都插到插槽上而不用担心出问题,因为usb插槽的厂家和做设备的厂家都遵守了统一的规定和尺寸,排线等等,但是给设备的内部结构显然是不相同的 硬件上的设计在软件中也是大量存在的 接口就是给出一些没有内容的方法,封装到一起,到某个类要使用的时候,在根据具体情况把这些方法写出来。语法: 小结:接口是更加抽象的抽象类,抽象类里有些方法可以有方法体,接口里的所有方法都没有方法体。接口体现了程序设计的多态和高内聚和低耦合的设计思想。 或 Java学习日记基础篇(六)—— 抽象类、接口、final 标签:不用 col ace abs put 而且 java学习日记 继承 public 原文地址:https://www.cnblogs.com/houzhaohui/p/9655726.html抽象类
为什么要有抽象类?
1 public class test1
2 {
3 public static void main(String[] args) {
4 }
5 }
6
7 class Animal
8 {
9 String name;
10 int age;
11
12 //动物会叫
13 public void cry()
14 {
15 System.out.println("不知道怎么叫");
16 //问题是这个方法永远都不会用到
17 }
18 }
1 //抽象类
2 abstract class Animal
3 {
4 String name;
5 int age;
6 //动物会叫
7 abstract public void cry();
8 }
9
10 //抽象类仍然可以被继承
1 public class test1
2 {
3 public static void main(String[] args) {
4 }
5 }
6 //抽象类
7 abstract class Animal
8 {
9 String name;
10 int age;
11 abstract public void cry();
12 }
13 //当一个类继承的父类是抽象类的话
14 //需要我们把抽象类中的所有的抽象方法全部实现
15 class Cat extends Animal
16 {
17 //实现父类的cry抽象方法
18 public void cry()
19 {
20 }
21 }
抽象类的注意事项
接口
为什么要有抽象类?
package test;
/*
* 作者:woliaoa
* 功能:接口的实现
* 时间:18.9.16
*/
public class test2
{
public static void main(String[] args)
{
Computer computer = new Computer(); //创建
Camera camera1 = new Camera(); //创建Camera
Phone phone1 = new Phone(); //创建Phone
computer.useUsb(camera1); //使用computer中的定义的useUsb方法,并把对象camera1传递给形参
computer.useUsb(phone1);//使用computer中的定义的useUsb方法,并把对象phone1传递给形参
}
}
//定义一个接口
interface Usb
{
//在接口中声明了两个方法
public void start();
public void stop();
}
//编写照相机类,并实现Usb接口 —— implements是实现的意思
//一个重要的原则,当一个类实现了一个接口,就要求该类把这个接口的所有方法统统实现
class Camera implements Usb
{
public void start()
{
System.out.println("我是相机,我开始工作了");
}
public void stop()
{
System.out.println("我是相机,我停止工作了");
}
}
class Phone implements Usb
{
//实现接口中的所有方法
public void start()
{
System.out.println("我是手机,我开始工作了");
}
public void stop()
{
System.out.println("我是手机,我停止工作了");
}
}
//计算机类,
class Computer
{
//开始使用Usb接口
public void useUsb(Usb usb)//前面的是Usb接口 后面的是局部变量usb
{
usb.start(); //让形参usb,调用Usb接口中的start方法
usb.stop(); //让形参usb,调用Usb接口中的stiop方法
}
}
运行结果:
我是相机,我开始工作了
我是相机,我停止工作了
我是手机,我开始工作了
我是手机,我停止工作了
//定义一个接口
interface 接口名
{
被初始化的变量;
方法;
}
//使用一个接口
class 类名 implement 接口
{
变量;
方法;
}
接口的注意事项
访问形式:接口名.变量名
public class test2
{
public static void main(String[] args)
{
System.out.println(Usb.a); //调用Usb接口中的a变量
}
}
//定义一个接口
interface Usb
{
int a=1;
//在接口中声明了两个方法
public void start();
public void stop();
}
文章标题:Java学习日记基础篇(六)—— 抽象类、接口、final
文章链接:http://soscw.com/index.php/essay/98204.html