Java抽象(方法,类)和Java的接口
来源:互联网 发布:性格测试软件 编辑:程序博客网 时间:2024/05/21 09:31
一.抽象方法和抽象类(关键字abstract)(没有抽象的成员变量)
1)抽象方法:用abstract修饰的类的方法
2)抽象类:用abstract修饰的类
成员变量:可以有变量,也可以有常量
成员方法:可以有抽象方法,也可以有成员方法
3)抽象方法没有方法体的(也就是没有方法具体的实现部分)
注意:
1)抽象类中抽象方法 强制子类去重写父类的方法
2)抽象类不能实例化对象 ,不能用抽象类创建对象 ,所以-用多态的【父类的引用指向子类的对象】
3)抽象类中不一定有抽象方法,但是抽象方法一定存在抽象类中
4)抽象类中的子类 ,必须重写抽象类的抽象方法
5)抽象类中的抽象方法不需要具体实现的功能。
6)abstract类中可以有构造方法,抽象类的构造方法不能是抽象方法。
7)abstract类和abstract方法都不能用final修饰。
8)代码:
public class Demo01 { public static void main(String[] args) { //父类的引用指向子类的对象 Animal animal=new Cat(); animal.eat(); animal.fun(); //打印 猫吃鱼}}/* * 动物 eat * 猫类 eat:鱼 * *///abstract class Person /*class Person{ // 抽象类中不一定有抽象方法 // public void fun() //抽象方法一定存在抽象类中 public abstract void fun() { }}*/ abstract class Animal{ final int number=10; public Animal() { System.out.println("我是父类的抽象方法"); } public void fun() { System.out.println("我是成员方法"); } //抽象类中的抽象方法 //第一种写法 abstract public void eat(); //第二中写法 public abstract void eat() ; } class Cat extends Animal{ @Override public void eat() { System.out.println("猫吃鱼"); }}
9)abstract与那些关键字不能共存
1.不能与static共存
static修饰方法,用类名去调用。
abstract修饰抽象方法没有方法的实现,没有实现部分的方法,只能是方法的声明,不能直接调用,所以不能共存
2.不能final共存
final修饰方法不能重写。
abstract修饰方法就是为了子类方法的重写,所以不能被共存
3.不能与private共存
private修饰方法,只能本类去访问private修饰的方法,而子类访问不到,谈不到重写
10)代码
public class Demo02 { public static void main(String[] args) { //利用多态创建子类对象 BiXieJianBu y=new YBQ(); y.ziGong(); BiXieJianBu l=new LPZ(); l.ziGong(); }} abstract class BiXieJianBu{ abstract void ziGong(); public abstract void fun(); } class YBQ extends BiXieJianBu{ @Override public void ziGong() { // TODO Auto-generated method stub System.out.println("用刀自宫"); } @Override public void fun() { } } class LPZ extends BiXieJianBu{ @Override public void ziGong() { System.out.println("用锤子自宫"); } @Override public void fun() { System.out.println(); } }
二.Java接口(是一个抽象类型,抽象方法的集合,不是类)
1.用==interface关键字==修饰的叫做接口
2.只有抽象方法(没有成员方法)和常量,没有构造方法(==因为接口不是类==)
3.形式:
interface 接口名{}
代码
interface InterA (接口名){}
4.接口的特点
1)接口中只能声明抽象的方法,成员常量
interface InterA { public static final int num=10; public abstract void print();}
注:接口中 系统会默认将
成员变量 写成 int num(其实前面有 public static)
成员方法 写成 void print();//方法名 其实前面是(public abstract)
这些都被系统默认的,但是自己最好填写上
2)接口中不能有构造函数,所以也不能被实例化(谁去用接口 ,就要去强制你去实现接口中的方法)。—–不能被实例化,可以使用多态的方法是创建实现类的对象。
3)关系
- 类和类的关系
类和类之间是继承关系,分为单继承和多层继承
2.类和接口的关系
类和接口之间是==实现==关系,不是继承关系,可以单实现,也可以多实现
3.接口和接口的关系
接口和接口之间可以单继承,也可以多继承
4.代码
public class Demo03 { public static void main(String[] args) { InterA a=new Person(); a.print(); System.out.println(InterA.num);}}interface InterA { public static final int num=10; public abstract void print();}class Person implements InterA{ //实现接口的方法 @Override public void print() { // TODO Auto-generated method stub System.out.println(num); System.out.println("我是人类的打印"); }}interface InterX{ public abstract void fun();}interface InterY{ public abstract void fun1();}//接口和接口之间 可以单继承 也可以多继承interface InterZ extends InterX,InterY{}//接口的多实现/*class Car implements InterX , InterY { @Override public void fun1() { // TODO Auto-generated method stub System.out.println("我是fun1"); } @Override public void fun() { // TODO Auto-generated method stub System.out.println("我是fun"); }}*/
- Java抽象(方法,类)和Java的接口
- Java 抽象类,抽象方法和接口
- Java抽象类和抽象方法、接口
- Java基础——Java的抽象机制,抽象方法抽象类和接口
- JAVA方法、JAVA接口、抽象类(抽象方法)
- java接口和抽象类的特殊实现方法
- java基础回顾----抽象类和抽象方法,接口
- Java面向对象05-抽象方法,抽象类和接口
- java的抽象类和抽象方法
- Java的抽象类和抽象方法
- JAVA的抽象类和抽象方法
- java的抽象类和抽象方法
- JAVA 抽象类 抽象方法 接口
- Java抽象类和接口的区别
- Java抽象类和接口的区别
- java抽象类和接口的区别
- Java 抽象类和接口的区别
- java接口和抽象类的区别
- 求最大值(经典线段树)
- 大纲
- 初学者---Android 学习资料
- 51nod 0和1相等串
- Ciclop开源3D扫描仪软件---Horus源码分析之src\horus\engine\calibration\platform_extrinsics.py
- Java抽象(方法,类)和Java的接口
- springboot---helloworld
- 将virtio集成slipstream到windows iso,winpe – 原生方法和利用0pe
- history.go(-1)和history.back()的区别和联系
- [LeetCode] 232. Implement Queue using Stacks
- mysql 基本操作 存储过程和函数详解 (第四章)
- vb.net 教程 8-3 数据库操作1
- ORA-28000: the account is locked 解决方法
- 引用类型和基本数据类型的传参问题