java的三大特性

xiaoxiao2021-02-28  127

java的三大特性

     一、封装

对象的全部属性和全部方法结合在一起,形成一个不可分割的独立单位尽可能隐藏对象的内部结构

public class Singleton { //私有的静态属性,持有唯一的一个实例 private static Singleton instance = new Singleton();

//私有构造方法,不给别人机会创建实例 private Singleton(){}

//公开的静态方法,唯一的得到实例的方式 public static Singleton getInstance(){ //通过给静态的属性赋值,控制只有一个实例 return instance; }

“` }

具体表现: 属性使用private权限方法使用public权限public class Animal{ private String name; public String getName (){ return name; } public void setName(String name) { this.name = name; } }

    二、继承

概念:继承是指一个类的定义可以基于另外一个已经存在的类,即子类基于父类,从而实现父类代码的重用,子类能吸收已有类的数据属性和行为,并能扩展新的能力。

继承的形式:【访问权限修饰符】【修饰符】子类名 extends 父类名{子类体} public class Animal(){     public void bark(){    } } public class Cat extends Animal(){    public void bark(){} }

一个类只能继承一个类

关联:B类作为A类的属性的类型,has-a依赖:B类作为A类的方法参数的类型,use-a

继承:B类继承A类,A类称为B类的父类,B类自动拥有A类的 方法,is-a

实现

super关键字 1.父类对象的属性 2.父类对象的方法 3.父类对象的构造器 4.权限允许

方法覆盖 1.同名 2.同参 3.同返回值 4.不可以缩小范围final 1.属性:当创建的时候必须赋初值,之后不可以更改值。 2.方法:final方法不可以被子类复写 3.final的类不可被继承抽象类 1.不可被实例化 2.可以定义方法,方法用abstract修饰,不能实现。 3.子类继承抽象类必须有实现其抽象方法 4.含有抽象方法的类,必须是抽象类

一个接口能继承多个接口

public interface SeaAnimal{ void swim); } public interface LandAnimal{ void go(); } public interface Horse extends SeaAnimal,LandAnimal{

}

一个类能继承多个接口

public interface Drive { boolean drive(String tool); } public interface Fly { boolean fly(int high); } - public class Car implements Drive,Fly{ public boolean drive(String tool){ System.out.println(“开车”+tool); return true; } public boolean fly(int high){ System.out.println(“多高”+high); return true; } }

类继承与接口继承的差异 1.java类可以一次继承多个接口,用implements 接口1,接口2。 2.接口继承接口可以不实现父接口中的方法,可以声明自己的新方法 3.类实现了一个接口A,如果B是A的父接口,且B中有抽象方法,则该类必须实现A和B中的所有抽象方法 4.抽象类实现接口,可以不实现接口中的抽象方法

     三、多态

概念:对外一种表现形式,内在有多种具体实现

Java中多态的具体体现

方法重载方法覆盖多态参数 方法的参数为父类或者接口时,可以传入父类及其子类或者接口的实现类

运行期类型和编译期类型

Animal animal = new Cat();运行期类型是Cat,编译期类型是Animal编译时,会去Animal中检查是否有相应的属性和方法运行时,执行Cat中的实现方法

多态环境下的属性和方法

针对属性,运行期使用父类的属性针对静态方法,调用的是父类针对成员方法,调用子类 public interface Usb { public void read(); public void write();

} public class Upan implements Usb{ public void read(){ System.out.println(“u盘读”); } public void write(){ System.out.println(“u盘写”); } } public class MovePan implements Usb{ public void read(){ System.out.println(“移动盘读”); } public void write(){ System.out.println(“移动盘写”); } } public class Computer { public void play1(Usb usb){ usb.read(); usb.write();

} public void play2(PlayAble usb){ usb.PlayMusic(); }

} public class App { private static Usb i;

public static void main(String[] args) { Computer computer = new Computer(); Usb lu =new Upan(); computer.play1(lu); Usb lmo = new MovePan(); computer.play1(lmo); Usb[] usbs={new MovePan(),new Mp3(),new Upan()}; for(Usb i:usbs){ computer.play1(i); }

} }

转载请注明原文地址: https://www.6miu.com/read-24664.html

最新回复(0)